• 字典 字典为键值的形式,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
```