1. dict
用大括号{} 括起来. 内部使用key:value的形式来保存数据
{'jay':'周杰伦', "jj":'林俊杰'}
注意:字典的key必须是可哈希的. 不可变的, value 没有限制
不是按照我们保存的顺序保存的, 无序的
2. 增删改查
1. dict[不存在的key] = value, setdefault()
2. pop(key). del dict[key]. popitem(), clear()
3. dict[存在的key] = 新值, d1.update(d2) 把d2的k-v更新到d1中
4. get(key, 默认值), setdefault(), dict[key]

1 d={'a':56,'b':75,'c':66,'e':66} 2 3 d['c']=34 #添加 如果Key重复,会覆盖value值 4 print(d) 5 print(d['c']) 6 d.setdefault('e',69) # 添加,如果Key存在 不添加 7 print(d) 8 d.setdefault('g') # 如果key不存在 自动添加 v值默认为None 9 print(d) 10 d.pop('c') #删除制定内容 并返回此内容 11 print(d) 12 del d['a'] #删除制定内容 没有返回值 13 print(d) 14 d.popitem() #随机删除 15 print(d) 16 17 修改 18 d={'a':56,'b':75,'c':66,'e':66} 19 d2={'a':85,"f":64,'k':35} 20 21 d1['e']='ok' 22 print(d1) #赋值修改 23 24 d.update(d2) #串联修改 25 print(d) 26 print(d2) 27 print(d1['c']) 28 29 a=d1.get('a') 30 print(a) 31 a=d1.get('l','hha ')# 可以通过key来获取value的值. 那么如果key不存在. 返回None. 32 print(a) # 可以给出一个默认值. 当key不存在的时候返回默认值 33 a=d.setdefault('a') 34 print(a) 35 a=d.setdefault('l') 36 print(a) 37 a=d.setdefault('l',56)# 1. 首先判断原来的字典中有没有这个key . 如果没有. 执行新增 38 print(a) # 2. 用这个key去字典中查询, 返回查到的结果
3. 字典的常用方法
1. keys() 返回所有字典的key的集合(高仿列表)
2. values() 返回所有的value的集合
3. items() 返回键值对. 元组
解构:
a, b = (1, 2)

1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"} 2 print(dic.keys()) # 拿到所有的key, 返回key的集合. 像是列表. 但是不是列表 3 4 for key in dic.keys(): # 可以进行迭代循环 5 print(key) 6 7 print(dic.values()) 8 for value in dic.values(): 9 print(value) 10 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"} 11 print(dic.items()) # 拿到键值对 12 # 遍历dict 13 for k, v in dic.items(): 14 print(k , v) 15 16 17 18 for k, v in dic.items(): 19 # = item # (key, value) 20 # print(item) # (key, value) 21 print(k,v) 22 23 #解构 . 解包 24 a, b = (1, 2) 25 print(a) 26 print(b) 27 28 a, b, c = ("马化腾", "马云", "马良") 29 print(b) 30 31 a, b = [1, 2] 32 print(a, b)
4. 字典的嵌套和循环

1 #嵌套 2 dic = { 3 "name":"汪峰", 4 "age": 58, 5 "wife":{ 6 "name":"国际章", 7 "salary": 180000, 8 "age": 37 9 }, 10 "children":[ 11 {"name":"老大", "age": 18}, 12 {"name":"老二", "age": 118} 13 ] 14 } 15 print(dic["children"][1]["age"]) 16 17 print(dic["wife"]['salary']) 18 #for循环 19 dic = {1: 'a', 2:'b', 3:'c'} 20 for a in dic: # 直接循环字典.拿到的是key 21 22 print(a) 23 print(dic[a])