不可变:(可哈希):数字、字符串、元组、布尔值
可变: (不可哈希):列表 字典
字典:字典里的键必须保证唯一(不能重复)
格式:{'key':'values'}
键值对数据,可以for循环
键要求:
不可变数据类型
字典不能当字典的键
值无求
注意:
python36 有顺序打印
python35及以下无序打印
增
1 #如果这个键不在字典中就是添加,存在就是修改(根据键来修改值) 2 方法一: 3 dic['3'] = 'linux' #修改键为3的值为linux 4 print(dic) 5 6 方法二:键存在就不进行添加,不存在就添加 7 #setdefault中第一个参数是键,第二参数是值,如果不写值就默认为None 8 dic.setdefault('周阳','国家一级大厨') 9 print(dic)
删:字典是没有remove
1 方法一: 2 #pop返回的是被删除的值,pop一定要给参数,参数是要删除的键 3 s = dic.pop('3') 4 print(s) 5 print(dic) 6 7 方法二: 8 #python35及以下随机删除.但在python36中删除最后一个 9 s1 = dic.popitem() 10 print(s1) #popitem返回的是被删除的键值对以元组的形式显示 11 print(dic) #元组中第一个是字典中的键,第二个是字典中的值 12 13 方法三: 14 #删除整个字典 15 del dic 16 print(dic) 17 18 方法四: 19 #通过dic['键']删除 20 del dic['3'] 21 print(dic) 22 23 方法五: 24 #清空 25 dic.clear()
改
1 dic = {1:2,'3':8,False:True,(1,2,3):['132','qw'],'周公':'移山'} 2 dic[1] = 78 #如果这个键和值在字典中就是修改,不存在就是添加 3 print(dic) 4 dic1 = {'计算机':'admin',4:89} 5 dic1.update(dic) #把字典dic里边的键值更新到dic1字典的键值后边 6 print(dic1)
查
1 方法一: 2 dic = {1:2,'3':8,False:True,(1,2,3):['132','qw'],'周公':'移山'} 3 s = dic.get(4) #不报错,默认返回None,可以自己定义None返回值dic.get(4,'返回值') 4 5 方法二: 6 print(dic[4]) #键不存在就报错 7 print(s)
其他操作
1 dic = {1:2,'3':8,False:True,(1,2,3):['132','qw'],'周公':'移山'} 2 print(dic.keys()) #以列表形式打印键keys 3 print(dic.values()) #以列表形式打印键values 4 print(dic.items()) #以元组形式将键值对放在一个列表里 5 6 #循环打印值keys,values 7 for k,v in dic.items(): 8 print(k,v) 9 10 #循环打印值values 11 for i in dic.values(): 12 print(i) 13 14 #循环打印键keys 15 for i in dic: 16 print(i) 17 18 #判断键keys是否在字典中,如果在就True,如果不在就False 19 if 1 in dic: 20 print(666) 21 22 for i in dic: 23 print(dic[i]) #使用默认方法获取值values 24 print(dic.get(i)) #使用get方法获取值values 25 26 for i in dic: 27 print(i,dic[i]) #使用默认方法循环获取字典中的键值
解构:
1 a,b = 1,2 2 print(a) a == 1 3 print(b) b == 2 4 5 赋值方法二: 6 c,d = (1,2) 7 print(c) 8 print(d) 9 10 赋值方法三: 11 a,b = [1,2] 12 print(a) 13 print(b) 14 15 赋值方法四: 16 a,c = 12 ,8 17 print(a) a == 12 18 print(c) c == 8 19 20 赋值修改方法一: 21 a = 10 22 b = 20 23 a,b = b,a a == 2,b == 10
字典的嵌套:
1 dic = {'name':'汪风', 2 'age':48, 3 'job':'输出', 4 'wife':[{'name':'小姐姐','age':20,'job':'输入','baby':'小苹果'}, 5 {'name':'国际章','age':23,'job':'国际输入','baby':['熊大','熊二']}], 6 } 7 8 print(dic['wife'][0]['name']) 9 小姐姐 10 print(dic['wife'][0]['baby']) 11 小苹果 12 print(dic['wife'][1]['baby'][0]) 13 熊大