字典 一:基本组成
dic={ "",[],{},"",2,} 字典由key 和value组成, key(键):键是不可变的(且必须要不可改变),一个字典中的key如果已经有了,再添加同样的键是不会添加进去的, 但是如果键一样,那么原来的键值就会被改变。 value:value的值是可以为任何元素的,可以是 数字,列表,字符串,None,任何都可以
二:字典的增,删,改,查
01):增
dic={ "名字":"你","数字":"123","答案":"正确","列表":[1,2,4,3]} 例子:dic={} 001:) dic["这个是键"]="这个是键值" 打印:print(dic) --〉dic={ "这个是键":"这个是键值"} dic["这个是键"]="123" print(dic) 打印:--〉{ '这个是键': '123'} 如果键key一样,那么,那么原来的键值会被改变成新的键值 002:) setdefault执行顺序,1.先判断key是否存在。 如果存在,就不执行新增, 如果不存在, 执行新增 dic={} dic.setdefault("1","2") print(dic) --->打印结果:dic={ "1","2"} 如果再增加一个相同键:结果不会变,字典里面有的键。再增加-相同的键不会增加到字典 dic={} dic.setdefault("1","2") dic.setdefault("1","3") print(dic) #打印结果:dic={"1","2"}
02):删除:
dic={ "名字":"你","数字":"123","答案":"正确","列表":["1","2","4","3"]} dic.pop("名字") #指定对某个键值删除 -->打印结果:{ '数字': '123', '答案': '正确', '列表': ['1', '2', '4', '3']} dic.popitem() #随机删除,我们执行时显示是从最后面开始删除的,其实里面是随即删除。 del dic["答案"] #打印结果:-->{'名字': '你', '数字': '123', '列表': ['1', '2', '4', '3']} dic clear() #清空字典: 打印:dic={}
03):修改
dic={ "名字":"你","数字":"123","答案":"正确","列表":["1","2","4","3"]} dic["名字"]="00000" -->将 "名字" 这个键所对应的键值 改为 "00000" ---〉打印:{ '名字': '00000', '数字': '123', '答案': '正确', '列表': ['1', '2', '4', '3']} 002:dic={ "名字":"你","数字":"123","答案":"正确","列表":["1","2","4","3"]} dic2={ "名字":"1111","数字":"3333","答案":"66666","列表":["1","2","4","3"]} dic.update(dic2) #把字典dic2的内容覆盖在dic中 print(dic) --〉打印: { '名字': '1111', '数字': '3333', '答案': '66666', '列表': ['1', '2', '4', '3']}
04):查询:
dic = { "张无忌":'倚天屠龙记', "紫薇":"还珠格格", "王语嫣":"天龙八部", "刘能":"乡村爱情协奏曲"} print("花无缺") #如果键不存在,会报错:KeyError: '花无缺' print(dic.get("花无缺")) # 当使用 .get("键值") 时,键值也不存在,但是不会报错,运行时显示:None .get("第一个","第二个")如果第一个存在,则直接返回这个所对应的键值,如果不存在则返回 ”第二个“ 作为默认值 print(dic.get("紫薇","不存在")) #打印:还珠格格 print(dic.get("紫薇1","不存在")) #打印:不存在
05):setdefault执行流程:
1:先检查你给的key是否存在, 2:存在则直接将键值value返回给你 setdefault :新增 # setdefault() 新增 # dic = {"jay":"周杰伦"} # ret = dic.setdefault("jay_jj","林俊杰") # print(dic, ret) 打印:--〉 { 'jay': '周杰伦', 'jay_jj': '林俊杰'} 林俊杰
三:元组,可以进行解包
# a, b, c = (1, 2, 3) # 解构, 解包 # # print(a, b) # print(dic.items()) # 返回键值对。 (key, value) # 遍历字典的最好的方案 # for k, v in dic.items(): # item是元组 (key, value) # print(k, v) # 直接拿到key和value