-
字典 字典为键值的形式,key=>value 字典是另一种可变容器模型,无序,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。不可变类型:整型,字符串,元组 (可变类型:列表,字典):字典的键只能用不可变类型来创建
-
字典操作
- 字典创建
#字典创建符号标识:{key:value} d1={} #创建空字典 d2={'name':'jerry','age':20,'job':996} print(d2) #通过列表或元组生成字典 l1=['a','b','c','d'] l2=[1,2,3,4] d3=dict(zip(l1,l2)) print(d3) #通过列表或元组生成字典 l1=['a','b','c','d'] l2=[1,2,3,4] -……---- #通过zip函数整合 #d3=dict(zip(l1,l2)) #print(d3) #。。。。 #直接构造 #d4={l1:l2}#这种写法会出现错误,key不支持list类型即可变类型 l1=tuple(l1) d5={l1:l2} print(d5)
- 字典查看
需要通过key键去查找对应的值,若key不存在报错。
![](https://s1.51cto.com/images/blog/201904/10/133dbe7748c1f510e6cbe3c945dfda0c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
判断某个可以是否是该成员:
![](https://s1.51cto.com/images/blog/201904/10/c1ef8b6bf1c46e1710ff4b72b954af3d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- 字典修改
#修改 print('jerry原来的年龄:{:d}'.format(d2['age'])) d2['age']=30 print('jerry修改后的年龄:{:d}'.format(d2['age'])) #若修改不存在的key值会添加方法修改 d2['sex']='male' - 字典添加 d2[key]=value - 字典删除 del d2[key] - 字典遍历
```
#字典遍历
print('方法1')
for key in d2:
print(key+':'+str(d2[key]),end=' ') #注+只能连接字符串类型
print('\n方法2')
for k,v in d2.items():
print(k,'=',v,end=' ')
#遍历字典的key
print('\n方法3')
for key in d2.keys():
print(key,end=' ')
#遍历字典的值
print('\n方法4')
for value in d2.values():
print(value,end=' ')
```
![](https://s1.51cto.com/images/blog/201904/10/1f16755677708ca081f2e997650d68a9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- 字典推导式
形式类似列表元组操作:
d6={expression:for iter_var in interable [if condition] }
![](https://s1.51cto.com/images/blog/201904/10/07a92ff74606f4aa167af7dbe5e47e52.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
- 简单使用 1.字典嵌套遍历
#---------------字典嵌套遍历---------
# grade={
# '赵丽颖':{
# '国籍':'中国',
# '民族':'汉',
# '出生日期':'1987年10月16日',
# '身高':'165cm'
# }
# }
# for name,info in grade.items():
# print(name)
# for key,value in info.items():
# print(key+':'+value)
2.星座测试
```
# name=['周公子','李大爷','张冠','李戴','王五','刘子','老子','庄子','梁子','李子','麻子','痱子']
# star=['白羊座','金牛座','双子座','巨蟹座','狮子座','×××座','天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']
# pro=['易燃易爆,干脆利落,敢作敢当,爱冒险',
# '精打细算,策划力强,有责任感',
# '脑子好,口才溜,变脸快,搞笑冠军',
# '人善,贴心,宅,心灵美',
# '慷慨,有原则,爱表现,不套路',
# '追求完美,处事冷静,独立,认真',
# '交际高手,人见人爱,内心忧郁',
# '神秘,狠,大胆,第六感强',
# '幽默率真,爱自由,有影响力',
# '耐力强,面瘫,自律律己,少言寡语',
# '求新鲜,爱动脑,思想前卫,触觉敏感,无情',
# '多愁善感,爱幻想,柔软可爱']
#构造个人字典
# man_dict=dict(zip(name,star))
# print(man_dict)
#构造星座字典
# star_dict=dict(zip(star,pro))
# print(star_dict)
# new=dict(zip(man_dict,star_dict))
# while True:
# name=input('please you name:')
# if name in man_dict:
# print('你名字:'+str(name)+','+'属于'+ man_dict[name])
# print('特点:',star_dict[man_dict.get(name)])
# else:
# break
```