字典---dict
1.字典是无序,可变的数据类型
2.字典:用于存储数据,存储大量数据,字典要比列表快,将数据和数据之间进行关联
定义一个字典:
dic = {"六月":99,"七月":"99"}
字典中逗号分隔叫做一个元素 "六月"(键):99(值) ------键值对
字典的键:
- 可哈希的 -- 不可变的数据类型 -- 避免哈希冲突使用了 开放寻址法
- 要求唯一 -- 如果有重复的后边值的将前面的值覆盖
字典的值:
增:
dic = {"六月":["飞","雪"],"七月":"99"}
dic["十月"] = "流火" #暴力添加
print(dic)
dic.setdefault("五月","飞萤")
print(dic)
print(dic.setdefault("五月") )
删:
lat = {"六月":["飞","雪"],"七月":"99","八月":"炎阳"}
del lat["八月"] #通过字典的键删除键值对
print(lat)
print(lat.pop("七月")) #通过字典的键进行删除键值对
print(lat)
lat_1 = {"1":"123","4":"456","7":"789"}
lat.clear()
print(lat)
改:
lat = {"六月":["飞","雪"],"七月":"99","八月":"炎阳"}
lat["七月"] = "散场" #有则改,无则加。
print(lat)
#字典中没有某个键值对的时候就是添加,当键在字典中存在的时候就是修改
lat["十月"] = "国庆"
print(lat) #添加
lat_1 = {"六月":"寒冬","七月":"冬去","三月":"春来"}
lat_1.update(lat) #update括号中的字典级别高于前边的,(覆盖前边的)
print(lat_1)
#输出 {'六月': ['飞', '雪'], '七月': '99', '三月': '春来', '八月': '炎阳'}
查:
lat = {"六月":"寒冬","七月":"冬去","三月":"春来"}
for i in lat: #循环获取的是字典中每个键值对的键
print(i) #输出 六月 七月 三月
print(lat.get("六月"))
print(lat.get("一月")) #通过键获取值,如果不存在,输出None
print(lat["六月"])
print(lat["一月"]) #通过键获取值,如果不存在,就会报错
其他操作:
lat = {"1":"123","4":"456","7":"789"}
for i in lat:
print(i,lat.get(i)) #获取所有的键和值
lat = {"1":"123","4":"456","7":"789"}
print(lat.keys()) #高仿列表---dict_keys(['1','4','7'])支持for循环,不支持索引
for i in lat.keys(): #获取字典中所有的键
print(i)
lat = {"1":"123","4":"456","7":"789"}
lat_1 = []
for i in lat:
lat_1.append(lat[i]) #append添加
print(lat_1)
# 输出 ['123', '456', '789']
lat = {"1":"123","4":"456","7":"789"}
print(lat.values())
#输出 dict_values(['123', '456', '789'])
lat = {"1":"123","4":"456","7":"789"}
print(list(lat.values())) #获取字典中所有的值
#输出 ['123', '456', '789']
print(lat.items())
# 输出dict_items([('1', '123'), ('4', '456'), ('7', '789')])
for i in lat.items():
print(i[0],i[1])
输出:
1 123
4 456
7 789