python字典

字典是有键值对组成的序列,字典是无序的。

一、字典的创建

  1、直接创建字典

>>> dict1={'one':1,'two':2,'three':3}
>>> dict1
{'one': 1, 'three': 3, 'two': 2}

  2、通过dict关键词

  用具有映射关系的参数创建字典时,键不可用字符串引号,否则会报错。

>>> dict1=dict(a=1,b=2,c=3)
>>> dict1
{'c': 3, 'b': 2, 'a': 1}

   另外一种方法是直接对键赋值,如果字典中有该键,则改变键值;如果没有改建,则创建改键。

>>> dict1
{'c': 5, 'b': 2, 'a': 1}
>>> dict1['d']=6
>>> dict1
{'c': 5, 'b': 2, 'a': 1, 'd': 6}

  也可以用元祖或者列表进行创建,当dict参数为元祖或列表时,必须有多于1个列表或者元祖,否则报错

>>> dict1=dict(([1,2],[3,4]))
>>> dict1
{1: 2, 3: 4}

 

二、字典的内置方法

  1、fromkeys()

   fromkeys()用于创建并返回一个新的字典,它有两个参数,第一个参数为字典的键,第二个参数是传入键的值,为可选参数,默认为None

>>> dict1={'a':1}
>>> dict1
{'a': 1}
>>> dict1.fromkeys('a',2)
{'a': 2}
>>> dict1
{'a': 1}
>>> 

 

   2、keys(),values()和items()

    keys()用于返回字典中所有的键,values()用于返回字典中所有的值,items()用于返回字典中所有的键值对

>>> dict1
{'c': 3, 'b': 2, 'a': 1}
>>> dict1.keys()
dict_keys(['c', 'b', 'a'])
>>> dict1.values()
dict_values([3, 2, 1])
>>> dict1.items()
dict_items([('c', 3), ('b', 2), ('a', 1)])

  

  3、get()

    如果用dict[key]访问字典时,如果key值不存在,python会报错。

    get()方法提供了更宽松的方式去访问字典,当键不存在的时候,get()方法不会报错,只返回了一个None。

    get()有两个参数,一个是key值,一个是没有找到时的默认返回值。  

>>> dict1
{'c': 3, 'b': 2, 'a': 1}
>>> dict1['d']
Traceback (most recent call last):
  File "<pyshell#100>", line 1, in <module>
    dict1['d']
KeyError: 'd'
>>> dict1.get('d','没有')
'没有'

   

  4、setdefault()

    类似get()方法,如果key存在,返回对应的value;如果key不存在,则创建key,value为none

>>> dict2
{'b': 2, 'c': 3, 'a': 1}
>>> dict2.setdefault('c')
3
>>> dict2.setdefault(2)
>>> dict2
{2: None, 'b': 2, 'c': 3, 'a': 1}
>>> 

 

  5、copy()

    复制字典,修改原字典,已复制的字典数据不变

>>> dict1={'a':1,'b':2,'c':3}
>>> dict2=dict1.copy()
>>> dict2
{'b': 2, 'c': 3, 'a': 1}
>>> dict1['a']=''
>>> dict1
{'c': 3, 'b': 2, 'a': ''}
>>> dict2
{'b': 2, 'c': 3, 'a': 1}
>>> 

  

  6、pop()和popitem()

    pop()参数为key,删除字典中key键值对,返回值。

    popitem()删除字典中一个键值对,返回被删除的键值对。

>>> dict1
{1: 2, 2: 3, 3: 4}
>>> dict1.pop(1)
2
>>> dict1.popitem()
(2, 3)
>>> 

 

  7、update()

    update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中

>>> dict2
{2: None, 'b': 2, 'c': 3, 'a': 1}
>>> dict2.update(b='bi')
>>> dict2
{2: None, 'b': 'bi', 'c': 3, 'a': 1}>>> dict2
{2: None, 'b': 'bi', 'c': 3, 'a': 1}
>>> dict2.update({'x':'xx','y':'yy'})
>>> dict2
{2: None, 'b': 'bi', 'x': 'xx', 'y': 'yy', 'c': 3, 'a': 1}

 

posted @ 2018-08-02 11:29  楠锅先生  阅读(147)  评论(0编辑  收藏  举报