目录
字典是包含若干“键:值”元素的无序可变序列,字典的每个元素包含用冒号分隔开的”键“和”值“两个部分,表示一种映射或对应关系,也称关联数组。
字典中的”键“不可重复,值可以是任意的,不能使用列表、集合、字典或其他可变类型作为字典的
”键“。
定义字典时,每个”键“和”值“之间用冒号分隔,不同元素之间用逗号分隔,所以元素放在一对大括号
”{}“中。
字典的创建
使用赋值运算符”=“将一个字典赋值给一个变量即可创建一个字典变量
>>> adict = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
也可以使用dict()类型转换函数以不同形式创建字典。
>>> dict1 = dict() #创建一个空字典,注意不是大括号
>>> type(dict1) #查看对象类型
<class 'dict'>
>>> dict1 = {} #创建一个空字典,注意是大括号
>>> keys = ["a","b","c","d"]
>>> values = [1,2,3,4]
>>> dictionary = dict(zip(keys,values)) #根据已有数据创建字典
>>> dictionary
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
>>> dict1 = dict(name = "tan",age = "20") #以关键参数的形式创建字典
>>> dict2 = dict.fromkeys (['name',"age","sex"]) #以给定内容为"键",创建"值"为空的字典
>>> dict2
{'name': None, 'age': None, 'sex': None}
字典元素的访问
字典中的每一个元素表达一种映射关系或对应关系,根据提供的”键“作为索引就可以访问对应的”值“,如果字典中不存在这个”键“会抛出异常
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1['Alice'] #指定的”键“存在,返回对应的”值“
'16'
>>> dict1['wow'] #指定的”键“不存在,抛出异常
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
dict1['wow']
KeyError: 'wow'
字典对象提供了一个get()方法来返回指定”键“的”值“,并且允许指定该键不存在时返回特定的”值“。
一般形式:字典名.get(key,default=None)
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.get ('Tom') #指定的”键“存在,返回对应的”值“
'20'
>>> dict1.get ('wow','Not Exists.') #指定的键不存在,返回指定的值
'Not Exists.'
使用字典对象的items()方法可以返回字典的”键“:”值“对
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.items() #返回字典的键值对
dict_items([('Alice', '16'), ('Beth', '18'), ('Tom', '20'), ('Emily', '22')])
使用字典对象的keys()方法可以返回字典的”键”
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.keys () #返回字典的键
dict_keys(['Alice', 'Beth', 'Tom', 'Emily'])
使用字典对象的values()方法可以返回字典的”值“
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.values () #返回字典的值
dict_values(['16', '18', '20', '22'])
字典元素的添加、修改与删除
添加
以”键“为下标为字典赋值时,有两种含义:
1.若“键”存在,则修改“键”对应的值
2.若“键”不存在,添加一个新元素
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1["Tom"] = 24 #键存在,修改键对应的值
>>> dict1
{'Alice': '16', 'Beth': '18', 'Tom': 24, 'Emily': '22'}
>>> dict1["New"] = 20 #键不存在,增加新元素
>>> dict1
{'Alice': '16', 'Beth': '18', 'Tom': 24, 'Emily': '22', 'New': 20}
修改
使用update()方法可以将另一个字典的“键:值”一次性全部添加到当前字典对象,如果两个字典中存在相同的“键”,则以另一个字典中的“值”为准对当前字典进行更新。
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.update ({"Tom":24,"New":20}) #修改“Tom”的值,并增加新元素'New': 20
>>> dict1
{'Alice': '16', 'Beth': '18', 'Tom': 24, 'Emily': '22', 'New': 20}
删除
使用del命令对字典中的指定元素进行删除
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> del dict1["Tom"] #删除指定元素
>>> dict1
{'Alice': '16', 'Beth': '18', 'Emily': '22'}
使用pop()方法删除并弹出指定的元素
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.pop ("Tom") #删除指定元素并返回值
'20'
>>> dict1
{"Alice":"16","Beth":"18","Emily":"22"}
使用 popitem() 方法随机返回并删除字典中的最后一对键和值
>>> dict1 = {"Alice":"16","Beth":"18","Tom":"20","Emily":"22"}
>>> dict1.popitem () #删除最后一个元素并随机返回一个元素
('Emily', '22')