字典是一种数据存储结构,由“键-值”对组成,没个元素表示一种映射或对应关系。
注意
(1)“键”是不可变数据(整数、实数、复数、字符串、元组,不可以是列表、集合、字典)
(2)“值”可以取任意数据类型
一、字典的创建
1、格式:直接创键:变量名={键1:值1,键2:值2。。。}
注意:字典中的各个元素无顺序
#创建空字典
#方法一
d={}
#方法二
d2=dict()
2、内置函数dict()函数
扩展:
zip()函数:把迭代对象作为参数,把对象中对应元素打包成元组。
3、fromkeys()方法创建字典(所有的键对应同一个值)
dict.fromkeys(seq[,value])
seq:"键"列表,value:"‘值’。
第一行代码创建字典时,"值"默认为None
注意:字典中的“键”是唯一的,若出现重复,后面的回覆盖前面“键-值”
4、字典的访问
(1)根据键访问值:
字典中的每一个元素表示一种映射关系,把“键”作为下标求对应“值”,如果不存在则抛出异常。
格式:字典变量名[键]
(2)使用get()方法访问值
使用场景:不确定字典中是否有某个键,存在返回对应的“值”;不存在返回default的默认值,如果default未设值则默认返回None。
dict.get(key[,default=None])
二、字典的基本操作
1、修改和添加
(1)键存在,修改对应的键值
(2)键不存,添加新的键值
2、删除元素
(1)del命令:根据‘键’删除字典中的元素
(2)clear()方法:清除字典中的所有元素
(3)pop()方法:根据键删除键值对,并返回键所对应的值。
如果删除的键不存在可设置默认值,返回默认值
(4)popitem()方法:随机删除一个键值对,并返回键值对
3、更新:键值对一次性全部添加到当前字典。
dict.update(dict2)
若出现重复,则以最新新为准。
4、复制:浅复制
dict.copy()
返回字典的浅复制
补充:
直接赋值:对象的引用
d2引用d时,d2或d父级或子级元素发生改变,另一方(d或d2)父级或子级元素也发生改变。
浅拷贝:复制父对象,引用对象内部的子对象
d2浅拷贝d时,d2父级元素发生改变,对应的d父级元素不发生改变;d2子级元素发生改变,对应的d子级元素发生改变。
深拷贝:完全复制
d2复制d,d2中无论是父级还是子级元素发生改变,对应d中的父级还是子级元素都不会发生改变。
三、字典的遍历
1、遍历历数组中所以的键-值对:dict.items()
2、遍历数组中所有的键:dict.keys()
3、遍历数组中所有的值:dict.values()
四、嵌套:在字典存储到列表,或列表作为值存在字典。
1、列表中嵌套字典
2、在字典中嵌套列表()
3、在字典中嵌套字典