"""
字典的增删改查
1、增新建空字典 向空字典中添加元素(通过键值对的方式)在已存在的字典中增加新的元素 通过键值对的形式增加使用默认值增加 -- setdefault
2、删除删除单个元素使用内置方法pop删除所有元素使用内置方法clear3、修改包含上面方法
4、查询查询的方式1: 直接通过key寻找对应valdic[”key“]查询的方式2: 使用get方法,直接通过key寻找对应valdic.get(”key“)方法区分:相同点:都可以查询功能不同点:1中当查询不存在的key的时候,直接报错2中当查询不存在的key的时候,不会报错,返回None
"""
dic1 =dict()
dic1["key1"]="小猫"
dic1["key2"]="小狗"print(dic1) # {'key1':'小猫','key2':'小狗'}"""
setdefault: 设置默认值,设置的时候默认key是不存在的,若key本身存在,则使用setdefault设置失效
"""
dic1.setdefault("小猫","祝小咪") # key必须是不存在的
print(dic1)# # 修改
#d['jj']="刘能"#dict[老key]= 值 修改#print(d)# # 删除
dic2 ={"齐天大圣":"孙悟空","天蓬元帅":"猪八戒","卷帘将军":"沙悟净","金蝉子":"唐三藏"}print(dic2)
val2 = dic2.pop("齐天大圣")print(dic2)
val3 = dic2.clear()print(dic2)# 查询
dic3 ={"花和尚":"鲁智深","及时雨":"宋江","黑旋风":"李逵"}
# 循环查询
for i in range(len(dic3)):name =input("请输入一个名字:")val = dic3.get(name)if val is None:print("查无此人")else:print(val)print("恭喜你,找到啦!")"""
小练习:列表和字典的
将一个列表的元素分开,把大于50的放一起, 把小于50的放一起"""
lst =[11,22,33,44,55,66,77,88,99]
# 创建一个字典
dic =dict()for item in lst:if item <50:# 如果key不存在就创建一个if dic.get("key1") is None:dic["key1"]=[item]else:# 本身存在直接添加即可dic["key1"].append(item)else:if dic.get("key2") is None:dic["key2"]=[item]else:# 本身存在直接添加即可dic["key2"].append(item)print(dic)解法二:简化的方法
#lst=[11,22,33,44,55,66,77,88,99]
result ={} # 结果
for item in lst:if item >50:result.setdefault("bigger",[]).append(item)else:result.setdefault("smaller",[]).append(item)print(result)
3、字典的循环
"""
字典中的循环和嵌套
循环:字典中通过循环可以获取存储中key\val值
"""dic ={"花和尚":"鲁智深","及时雨":"宋江","黑旋风":"李逵"}# 方法1: 直接通过key拿到对应的key\value
for key in dic :print(key, dic[key])# 方法2:通过key() 函数可以拿到所有的key
lst = dic.keys() # 保存在一个list中
print(lst)for i in lst:print(i,dic[i])# 方法3:通过value() 拿到所有的value
lst1 = dic.values()for i2 in lst1:print(i2)# 方法4:字典中可以通过items()拿到所有数据,直接拿到key value中的数据
for key, value in dic.items():print(key, dic[key])"""
知识点补充
解构
元组和列表中可以使用 将元素拆开分别输出"""
a =10,20print(type(a)) # <class'tuple'>
b =[10,20]print(type(b)) # <class'list'>
c =dict()print(type(c)) # <class'dict'>
d, f =22,33print(d, f)