字典(dict),增删改查,嵌套
一丶字典
dict 用{}来表示 键值对数据 {key:value} 唯一性
键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键
值 没有任何限制
二丶字典的增删改查
1.增
dic[key] = value
dic.setdefault(key,value)
如果键在字典中存在,则不进行任何操作,否则就添加,可以通过key查询,没有这个key则返回None
1 # 增 2 dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000} 3 dic["sex"] = "女" #增加,如果key重复了,会替换掉原来的value 4 print(dic) 5 dic.setdefault("hobby","listen music") 6 print(dic)
2.删
pop(key) 有返回值,返回的是被删除的value
del dic[key]
popitem 随机删除
clear() 清空字典
1 # 删 2 dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000} 3 ret = dic.pop("money") #有返回值,返回的是被删除的value 4 print(dic) #{'name': '周杰伦', 'age': 45, 'sex': 'boy'} 5 print(ret) #被删除的值 6 del dic["sex"] #{'name': '周杰伦', 'age': 45, 'money': 100000} 7 print(dic) 8 dic.popitem() #随机删除 9 print(dic) #{'name': '周杰伦', 'age': 45, 'sex': 'boy'} 10 dic.clear() #全部清空 {} 11 print(dic)
3.改
dic[key] = value
dic.update(字典)
1 #改 2 dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000} 3 dic["age"] = "40" #强制修改值 4 print(dic) #{'name': '周杰伦', 'age': '40', 'sex': 'boy', 'money': 100000} 5 dic1 = {"name":"李晨","bug":"唯一一个","age":38} 6 dic2 = {"name":"范冰冰","邓超":"玛丽","age":26} 7 dic2.update(dic1) #把dic1中的内容更新到dic2中,如果存在了key,则替换,如果不存在,则添加进去 8 print(dic1) 9 print(dic2)
4.查
get(key)
dic[key]
for 循环
setdefault(key)
1#查
2 dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000} 3 print(dic.get("sex")) #boy 4 print(dic["age"]) #45 5 for a in dic: #for 循环默认是获取字典中的键(key) 6 print(a) 7 print(dic[a]) #获取的是字典中的值(value) 8 ret = dic.setdefault("name","谢文东") #首先判断原来的字典中有没有这个key,如果没有,执行新增 9 print(dic) #用这个key去字典中查询,返回查找到的结果 10 print(ret)
三丶字典的其它操作
keys 获取到所有的键存在一个高仿的列表中
values 获取到所有的值存在一个高仿的列表中
items 获取到所有的键值对,以元组的形式存在一个高仿的列表中
1 dic = {"name":"周杰伦","age":45,"sex":"boy","money":100000} 2 print(dic.keys()) #获取到所有的键存在一个高仿的列表中 3 ##dict_keys(['name', 'age', 'sex', 'money']) 4 print(dic.values()) #获取到所有的值存在一个高仿的列表中 5 ##dict_values(['周杰伦', 45, 'boy', 100000]) 6 print(dic.items()) #获取到所有的键值对,以元组的形式存在一个高仿的列表中 7 ##dict_items([('name', '周杰伦'), ('age', 45), ('sex', 'boy'), ('money', 100000)])
四丶字典的嵌套
1 # 字典的嵌套 2 dic1 = { 3 "name":"汪峰", 4 "age":48, 5 "sex":"男", 6 "wife":{ 7 "name":"章子怡", 8 "age":36, 9 "sex":"女", 10 }, 11 "baby":[ 12 {"name":"熊大","age":18}, 13 {"name":"熊二","age":16} 14 ] 15 } 16 print(dic1) 17 dic1["baby"][1]["age"] = 14 18 print(dic1)