一:字典的特性
1,字典的键必须是唯一的
2,字典的键必须是不可变的数据类型,所以按照这个定位,字典的键可以是:字符串,数字,布尔值,元组。字典的键不可以是列表,因为,因为列表是不可变的
3,字典的value可以是任何数据类型
4,字典中的数据没有先后的顺序关系, 字典的存储是无序的
dic = {'name':'alex','age':9000} #字符串 print(dic) dic = {1:'a',2:'b',3:'c'} #数字 print(dic) dic = {True:'1',False:'0'} #布尔值 print(dic) dic = {(1,2,3):'abc'} #元组 print(dic) dic = {[1,2,3]:'abc'} print(dic)
二:字典的增删改
1,字典中数据的增删改
#新增 1,直接赋值 dic['火女'] = '人头狗' # 新增 print(dic) 2,使用setdefault()函数 #使用setdefault函数,程序会先在字典中查找此键,如果键不存在就直接赋值,添加一个新的键值对到字典中。如果键存在,就不做任何操作了 dic.setdefault('火女','安妮') dic.setdefault('火女','火男')
# 删 ret = dic.pop('易大师') #通过key删除 返回被删除的value print(ret) del dic['剑豪'] dic.clear() # {} ret = dic.popitem() #随机删除 返回值 一个元组 (key,value) print(ret) print(dic) # 改: dic['剑豪'] = '哈莎阁' # 强制修改 dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} dic1.update(dic) print(dic1) #查看 1,for循环查看 for i in dic: print(i) #for 循环默认是获取字典中的键 2,中括号里写键值查看 print(dic['易大师父']) 3,get()方法查看, 没有返回None 可以指定返回内容 print(dic.get('易大师','你傻啊,没有!')) 4,setdefault()查看1 没有这个键的时候查询会报错,字典中查看键是用的中括号,列表中查找的时候的括号是表示索引 print(dic.setdefault('易大师范湖')) #查看 没有返回None
三:字典的其他操作,
1,取出字典所有的键(key) dic = {'name':'alex','age':9000} print(dic.keys()) # (高仿列表) 2,取出字典所有的value print(dic.values()) # (高仿列表) 3,取出电子所有的键值对 (高仿列表中的元组) print(dic.items()) #验证 for i in dic.keys(): print(i) for i in dic: print(i) #获取到字典中的每一个键 for i in dic.values(): print(i) #获取到字典中的每一个值 for i in dic.items(): print(i)
四:字典的解构(解包)
a,b = '12' #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组 print(a) print(b) a,b = [1,2] #将后边解构打开按位置赋值给变量 支持 字符串 列表 元组 print(a) print(b) 解构在后面的常用样例 dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} for a,b in dic.items(): # print(dic.items()) print(a) print(b)
五:字典的嵌套
dic = { 'name':'汪峰', 'age':43, 'wife':{ 'name':'国际章', 'age':39, 'salary':100000 }, 'baby':[ {'name':'熊大','age':18}, {'name':'熊二','age':15}, ] } #dic['baby'][0]['age'] = 19 a=dic.get('baby')[0].get('age') print(a)