2.3.1 字典创建和元素添加、修改与删除

  使用赋值运算符“=”将一个字典赋值给一个变量可创建一个字典变量。

1 >>> a_dict = {'server':'db.diveintopython3.org','database':'mysql'}
2 >>> 
3 >>> a_dict
4 {'server': 'db.diveintopython3.org', 'database': 'mysql'}
5 >>> 
6 >>> 
7 >>> type(a_dict)
8 <class 'dict'>

  也可使用内置函数dict()通过已有数据快速创建字典:

 1 >>> keys = ['a','b','c','d']
 2 >>> values = [1,2,3,4]
 3 >>> 
 4 >>> a_dict = dict(zip(keys,values))
 5 >>> 
 6 >>> a_dict
 7 {'c': 3, 'b': 2, 'a': 1, 'd': 4}
 8 >>> 
 9 >>> x = dict()                   #空字典
10 >>> 
11 >>> x
12 {}
13 >>> 
14 >>> type(x)                     #查看对象类型
15 <class 'dict'>
16 >>> 

  

  还可以使用内置函数dict()根据给定的“键:值”来创建字典:

1 >>> d = dict(name='dong',age=30)
2 >>> 
3 >>> d
4 {'name': 'dong', 'age': 30}
5 >>> 

  还可以给定内容为“键”,创建“值”为空的字典:

1 >>> adict = dict.fromkeys(['name','age','sex'])
2 >>> 
3 >>> adict
4 {'name': None, 'sex': None, 'age': None}
5 >>> 

  当以指定“键”为下标为指点元素赋值时,有两种含义:

    (1)若该“键”存在,则表示修改该“键”对应的值;

    (2)若该键不存在,则表示添加一个新的“建:值”,也就是添加一个新的字典元素。

 1 >>> adict = {'age':35,'name':'Dong','sex':'male'}
 2 >>> 
 3 >>> adict['age'] = 38        #修改元素值
 4 >>> 
 5 >>> adict
 6 {'name': 'Dong', 'sex': 'male', 'age': 38}
 7 >>> 
 8 >>> adict['address'] = 'SDIBT'
 9 >>> 
10 >>> adict
11 {'address': 'SDIBT', 'name': 'Dong', 'sex': 'male', 'age': 38}
12 >>> 

  

  使用字典对象的update()方法可以将另一个字典的“键:值”一次性全部添加到当前字典对象,如果两个字典存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。

 1 >>> adict
 2 {'address': 'SDIBT', 'name': 'Dong', 'sex': 'male', 'age': 38}
 3 >>> 
 4 >>> bdict = {'score':[98,97]}
 5 >>> 
 6 >>> adict.update(bdict)
 7 >>> 
 8 >>> adict
 9 {'address': 'SDIBT', 'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
10 >>> 
11 >>> adict.update(cdict)
12 >>> 
13 >>> adict.items()
14 dict_items([('name', 'Dong'), ('address', 'SDIBT'), ('score', [66, 88]), ('sex', 'male'), ('age', 38)])
15 >>> 

  

  使用del命令可以删除整个字典,也可以删除字典中指定的元素。例如,继续上面的代码:

 1 >>> adict
 2 {'name': 'Dong', 'address': 'SDIBT', 'score': [66, 88], 'sex': 'male', 'age': 38}
 3 >>> 
 4 >>> adict.items()                  #返回所有元素
 5 dict_items([('name', 'Dong'), ('address', 'SDIBT'), ('score', [66, 88]), ('sex', 'male'), ('age', 38)])
 6 >>> 
 7 >>> del adict['age']               #删除字典元素
 8 >>> 
 9 >>> adict
10 {'name': 'Dong', 'address': 'SDIBT', 'score': [66, 88], 'sex': 'male'}
11 >>> 
12 >>> del adict                      #删除整个字典
13 >>> adict
14 Traceback (most recent call last):
15   File "<pyshell#259>", line 1, in <module>
16     adict
17 NameError: name 'adict' is not defined
18 >>> 
19 >>> #字典对象被删除后不再存在

  也可以使用字典对象的pop()和popitem()方法弹出并删除指定的元素,例如:

 1 >>> adict = {'address': 'SDIBT', 'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
 2 >>> 
 3 >>> adict.popitem()      #弹出一个元素并从字典中删除,对空字典会抛出异常
 4 ('address', 'SDIBT')
 5 >>> 
 6 >>> adict
 7 {'score': [98, 97], 'name': 'Dong', 'sex': 'male', 'age': 38}
 8 >>> 
 9 >>> adict.pop('sex')     #弹出指定键对应的元素
10 'male'
11 >>> 
12 >>> adict
13 {'score': [98, 97], 'name': 'Dong', 'age': 38}
14 >>> 

  字典对象的clear()方法用于清空字典对象中的所有元素,copy()方法用于返回字典对象的浅复制。

原文地址:https://www.cnblogs.com/avention/p/8544616.html