一.字典dict:用大括号{}括起来,内部使用key:value的形式来保存数据
{'jay':"周杰伦",'jj':"林俊杰"}
注意:字典的key必须是可哈希的,不可变的 list是不可哈希的,是可变的
value 没有限制 不是按照我们的顺序保存,无序的
二.字典的相关操作
1.字典的增加
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"} #如果key重复了,会替换原来的value
# dic["晓君"]="未知" ===> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic)
例如;
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
# dic["晓君"]="未知"
# dic["晓君"]="***" ==> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"***"}
# print(dic)
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"} #如果字典中已经包含了这个key,将不再保存
# dic.setdefault("晓君","未知")
# print(dic) ==> {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
# dic.setdefault("晓君","未知")
# dic.setdefault("晓君","***") ==>{"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic)
2.字典的删除
⑴dic.pop()
例如
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"} #删除一个元素,返回这个元素的value值
# dic.pop("昆凌")
# print(dic) ==>{"刘怀源":"张舒文","刘亚楠":"尹少言"}
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
# ret = dic.pop("昆凌")
# print(ret) ==>周杰伦的媳妇
⑵del dic[]
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
# del dic["昆凌"]
# print(dic) ==>{"刘怀源":"张舒文","刘亚楠":"尹少言"}
⑶dic.popitem()
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# dic.popitem()
# print(dic) ==>随机删除
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# ret = dic.popitem()
# print(ret) ==>返回的是一个元组(删除的那一项)
⑷dic.clear()
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言"}
# dic.clear()
# print(dic) ==>全部清除
3.字典的修改
⑴用key去修改 (数字加减也可以)
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# dic["晓君"]=int("123")
# print(dic) ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"123"
例如:
dic = ["id":1,"name":"李嘉诚","money":1000]
dic["money"]=dic["money"]-500
print(dic) ==>"id":1,"name":"李嘉诚","money":500
⑵update(更新)
例如:
# dic1 = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# dic2 = {"昆凌":"***媳妇","刘怀源":"张舒文","游丽":"真哥","A":"B","***":"张舒文"}
# dic1.update(dic2)
# print(dic1) #把dic2中的内容更新到dic1中,如果存在了key,就替换,如果不存在,就添加
# print(dic2)
4.字典的查询
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic["昆凌"]) ==>周杰伦的媳妇 #如果key不存在直接报错
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic.get("刘怀源")) ==>张舒文
# print(dic.get("刘怀源的")) ==>None #如果key不存在,返回None
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic.get("刘怀源的","余小")) ==>余小 #如果key不存在,直接输出默认值
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"} #可以帮忙添加
# dic.setdefault("昆凌的","老公")
# print(dic) ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知","昆凌的","老公"
例如:
dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
ret = dic.setdefault("昆凌的","老公")
print(ret) ==>老公 如果key不存在.就相当于添加,ret这个执行出来的是value
print(dic) ==>"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知","昆凌的","老公"
重点:setdefault() ①首先要判断原来的字典中有没有这个key,如果没有,执行新增
②用这个key去字典中查询,如果有,返回查到的结果
5.字典的其他相关操作
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic.keys()) 打印出来dict_keys(['昆凌', '刘怀源', '刘亚楠', '晓君']) 拿到所有的key,返回key的集合,像是列表,但不是列表
# for key in dic.keys(): 可以进行迭代循环
# print(key)
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic.values())
# for value in dic.values():
# print(value)
例如:
# dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"}
# print(dic.items()) item(元素)
# for item in dic.items():
# print(item)
# print(item[0])
例如:
dic = {"昆凌":"周杰伦的媳妇","刘怀源":"张舒文","刘亚楠":"尹少言","晓君":"未知"} 解包 (元组,列表都可以)
for k,v in dic.items():
print(k,v)
三.字典的嵌套
例如:
dic = {"name":"汪峰",
"age":"48",
"wife":{
"name":"国际章",
"age":"40",
"salary":"10000" salary (工资)
},
"children":[
{"name":"老大","age":20},
{"name":"老二","age":16}
]
}
print(dic["children"][0]["age"])
print(dic.[children][0]['name']) ==>20 如果字典里面有[列表],就写列表里所对应的索引
例如: 字典的for循环
dic = {1:"A",2:"B",3:"C",4:"D"}
for A in dic: ==>直接循环字典,拿到的是key
print(A)
print(dic(A)) ==>打印出来的是A所对应value