一、定义
使用{}表示,{键:值}
键名是唯一的,不能重复
值:可以相同,可以是多种数据类型,list,tuple,str,int,可嵌套,可修改。
二、创建字典:
dict(a=1,b=2,c=3) # a,b,c必须是变量
dict([(a,1),(b,2),(c,3)]) # a,b,c是不可变数据类型
{x:x+2 for x in range(9)} # 使用推导式创建
{x:y for x in a for y in b} # 把a,b两个序列的元素,对应生成词典
# len(a) > len(b),a多出的元素值都等于b最后一个值
# len(a) < len(b) , a前面的值对应,最后一个值等于b最后值
dict.fromkeys(seq, value) # 把序列seq所有元素作为键,所有键值都等于value
三、遍历词典的正确姿势:
for i in dict:
print(i, dict[i])
上面这种方法速度最快。建议使用!
四、词典的方法:
dict[键名] | 读取指定键的值 |
dict.keys() | 以列表返回键名 |
dict.values() | 以列表返回值 |
dict.get(键名,默认值) | 默认值可选,返回键值,如果词典没有查询到键值,返回默认值 |
dict.pop(键名,默认值) | 默认值可选,随机读取并删除对应键,如果没有,返回默认值 |
dict.popitem() | 随机从dict删除并返回键名和值 |
dict.setdefault(key,default) | 默认值可选,返回键值,如果词典没有查询到键值,把键和默认值添加到词典,没有默认值,向字典添加键值是None |
dict1.update(dict2) | 把dict2里的每个元素追回到dict1里,dict1元素改变,dict1和dict2的总和 |
dict.clear() | 删除字典的所有值,变成一个空字典{} |
del(dict) | 删除dict变量,变成未定义状态 |