dict 字典
1. 语法:dis = {key : value}
2. 字典是无序的没有索引,无法用索引进行查看
3. dict 由key(键):value(值)组成
4. 键只能是不可变的值,可哈希的,比如元祖,字符串,数字,不能是列表
5. for循环可以拿到的是每个键
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5}
for i in dic:
print(i,end=" ")
<<<<苹果 香蕉 红枣 西瓜
增
1.dis[key]="value" 如果字典中没有键,就会强制添加,如果有就会强制修改value
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} dic["苹果"]="甜的" # 先查找键,如果有,就进行更改 print(dic) <<<<{'苹果': '甜的', '香蕉': 2, '红枣': 22, '西瓜': 5} dic["葡萄"]=8 # 如果找不到键,就会强制添加 print(dic) <<<<{'苹果': '甜的', '香蕉': 2, '红枣': 22, '西瓜': 5, '葡萄': 8}
2.dis.setdefault('key','value') 先会查找字典,如果字典中有这个键,就不进行任何操作,如果没有就会添加
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} dic.setdefault("西瓜",10) # 先查找键,如果在字典里找到了这个键,将不进行任何操作 print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5} dic.setdefault("葡萄","酸") # 先查找键,如果找不到就进行添加 print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5, '葡萄': '酸'}
7.删
1.pop(key)通过key删除返回被删除的value
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a =dic.pop("西瓜") # 删除指定的键值对,然后返回该键值对的值 print(a) <<<<5 # 键值对的值 print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22}
2.del dis[key] 通过key删除,没有返回值
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} del dic["苹果"] #指定键进行删除键值对,没有返回值 print(dic) <<<<{'香蕉': 2, '红枣': 22, '西瓜': 5}
3.clear()清空字典
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} dic.clear() # 清空字典 print(dic) <<<<{} # 空字典
8.改
1.popitem()随机删除 返回值为一个元组
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} re = dic.popitem() # 随机删除一个键值对,返回为一个原组 print(re) <<<<('西瓜', 5) print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22}
2.dis.update(die) 跟新字典,在原来的基础上跟新已有的键的vaule,添加没有的
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} dic2 = {"苹果":1,"香蕉":2,"水蜜桃":9,"榴莲":88} dic.update(dic2) # 在原来的基础上进行更新,添加没有的 print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5, '水蜜桃': 9, '榴莲': 88}
9.查
1.dis['key'] 查1 如果字典中没有查找到会报错
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a=dic["百度"] print(dic) <<<<KeyError: '百度'# 报错
2.dis.get('key') 查2,如果字典中没有查找到可以指定返回内容,如果不指定会返回none
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a =dic.get("百度") # 如果查找不到键不会报错,没有找到可以指定返回内容,如果没有指定返回内容,默认None print(dic) <<<<{'苹果': 1, '香蕉': 2, '红枣': 22, '西瓜': 5} print(a) <<<<None b = dic.get("百度","该内容不存在") # 这里指定了返回内容 print(b) <<<<该内容不存在 c = dic.get("苹果") # 如果查找到该键,就会返回该键值对的value print(c) <<<<1
3.dis.setdefault('key') 查3,如果查询的到会返回value,如果查询不到会返回none
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a = dic.setdefault("百度") # 进行查找,查找不到返回None print(a) <<<<None b = dic.setdefault("苹果") # 查找的到就返回该键值对的value print(b) <<<<1
10.其他(字典中独有的方法)
keys values items
1.print(dis.keys()) 高仿列表 获取字典中的所有键,具备一些列表的一些方法
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a = dic.keys() # 将字典里的所有键返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换 print(a) <<<<dict_keys(['苹果', '香蕉', '红枣', '西瓜'])
2.print(dis.values()) #高仿列表,获取字典中的所有value
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a = dic.values() # 将字典里的所有值返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换 print(a) <<<<dict_values([1, 2, 22, 5])
3.print(dis.items()) 高仿列表,列表里是元祖
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} a = dic.items() # 将字典里的所有键值对返回一个高仿列表,这个列表不能直接拿来用要用list()进行转换,这个列表里面是元组 print(a) <<<<dict_items([('苹果', 1), ('香蕉', 2), ('红枣', 22), ('西瓜', 5)])
11.解构(解包)
1.a,b = '12' #将后面解构打开按位置赋值给变量print(a)print(b)
a,b = '12' print(a) <<<<1 print(b) <<<<2
2.for a,b in dis.items(): #常用方法# print(a)# print(b)
dic = {"苹果":1,"香蕉":2,"红枣":22,"西瓜":5} for a,b in dic.items(): print(a) print(b) # <<<< # 苹果 # 1 # 香蕉 # 2 # 红枣 # 22 # 西瓜 # 5