一、什么是字典
dict 用{}表示,用来存放键值对数据
{key:value}
键:具有唯一性,不能重复,不可变
必须是可哈希的(不可变的数据类型)
字典是无序的,没有索引
值:
没有任何限制
二、字典的增、删、改、查
2.1增
dic['key'] = value 新增, 如果键存在于字典中,则强制修改。
setdefult(key,value)如果键在在字典中存在,则不进行任何操作,不存在则进行添加
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} dic['火女'] = '人头狗' # 新增 # print(dic) dic.setdefault('火女','安妮') # 如果在字典中存在就不进行任何操作,不存在就进行添加 dic.setdefault('火女','火男')
2.2删
pop(key)通过键删除,返回被删除的值
del dic[key] 没有返回值
dic.clear() 清空字典
dic.popitem() 随机删除,返回一个元组(key,value)
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} ret = dic.pop('易大师') #通过key删除 返回被删除的value print(ret) del dic['剑豪'] dic.clear() # {} ret = dic.popitem() #随机删除 返回值 一个元组 (key,value) print(ret) print(dic)
2.3改
dic['剑豪'] = '哈莎阁' # 强制修改 dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} dic1.update(dic) # 将一个字典中没有的元素添加值另一个字典中,如果有相同键,则修改原来的值 print(dic1)
2.4查
for 循环 默认获取字典中的键
dic[key] 通过键查询,查不到会报错
dic.get(key) 查不到时候返回None
setdefault(key) 没有返回值
dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} dic['剑豪'] = '哈莎阁' # 强制修改 dic1 = {'火女':'安妮','火男':'布兰德','维恩':'暗影猎手','剑豪':'哈莎阁'} dic1.update(dic) print(dic1)
三、字典中独特的操作方法
keys values items
dic.keys() 得到一个高仿列表,可迭代。获取到字典中的每一个键
dic.values 获取字典中的每一个值,得到一个仿真列表
dic.items 获取字典中的键值对,得到一个仿真列表
print(dic.keys()) # (高仿列表) print(dic.values()) # (高仿列表) 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) dic = {'易大师':'剑圣','剑豪':'托儿所','草丛伦':'大宝剑'} for a,b in dic.items(): print(a) print(b) dic1 = {} dics = dic1.fromkeys([1,2,3],'abc')
五、字典的嵌套
与列表的嵌套相似,一层一层看。
dic = { 'name':'汪峰', 'age':43, 'wife':{ 'name':'国际章', 'age':39, 'salary':100000 }, 'baby':[ {'name':'熊大','age':18}, {'name':'熊二','age':15}, ] } dic['baby'][0]['age'] = 19 print(dic)