python之字典的相关操作
一、什么是字典
dict 用{}表示,用来存放键值对数据
{key:value}
键:具有唯一性,不能重复,不可变
必须是可哈希的(不可变的数据类型)
字典是无序的,没有索引
值: 没有任何限制
已知的可哈希(不可变)的数据类型:int,str,bool,tuple
不可哈希(可变)的数据类型:list,dict,set
语法:{key1 : value1 , key2 : value2 … }
二.字典的增/删/改/查
2.1增
dic['key'] = value新增.如果键存在于字典中,则强制修改
#当这个键没在字典中就是添加
setdefult(key,value)如果键在字典中存在,则不进行任何操作,不存在则进行添加
2.2删
pop(key)通过键删除,返回被删除的值
del dic[key] 没有返回值
dic.clear() 清空字典
dic.popitem() 随机删除,返回一个元组(key,value)
dic = {"jay":"who","i":"wang","zhao":"jie","niu":"li"} ret = dic.pop("jay") #pop有返回值,返回被删除的value值 print(ret) #结果为:who del dic["i"] print(dic) ret = dic.popitem() # 随机删除,返回一个元组(删除的key , 删除的value),可以用解构 k , v = dic.popitem() print(ret) #结果为:('niu', 'li') print(dic) # 清空字典
2.3改
字典的修改操作有:dic[key] = value,dic.update(),具体如下示例代码:
2.4查
for 循环 默认获取字典中的键
dic[key] 通过键查询,查不到会报错
dic.get(key) 查不到时候返回None
setdefault(key) 没有返回值
三、字典中独特的操作方法
keys values items
dic.keys() 得到一个高仿列表,可迭代。获取到字典中的每一个键
dic.values 获取字典中的每一个值,得到一个仿真列表
dic.items 获取到所有的键值对以元组的形式存在一个高仿的列表中;
字典的修改操作有:dic[key] = value,dic.update(),具体如下示例代码:
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)