day05 字典 dict
今日内容:
字典
成对的保存数据。 以key:value的形式保存
用{}表示,每一项内容都是key:value, 每项数据之间用逗号隔开
字典中的key是不能重复的。 存储是依靠着key来计算的。
字典是使用hash算法计算key的哈希值. 使用哈希值来存储数据
哈希算法得到的是一个唯一的数字(可能是正数, 可能是负数, 很大或者很小)
哈希算法是无序的
字典中的key必须是可哈希的, 不可变的就是可哈希的
字典的value随便改动
注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
不可变: 字符串, 元组, int, bool
可变的: list, dict, set
操作
dic = {}
- 增加
dic[字典中不存在的key] = value # key如果重复了。 就会修改
# # 流程: 1.先判断key是否存在。 如果存在,就不执行新增, 如果不存在, 执行新增
dic.setdefault(("宫本武藏", "很牛B"))
# dic.setdefault("宫本武藏", "我的宫本很菜") # 如果key存在了就不会再添加了
- 删除
pop() 指定某个key删除
popitem() 随机删除
del dic[key] 删除
clear() 清空
- 修改
dic[key] = value 如果key存在,则value覆盖
dic.updae(dic2) #把dic2中的内容覆盖到dic中 #存在则覆盖,不存在则添加
- 查询
dic[key] #如果key不存在则报错
dic.get(‘key’,’返回内容’) #查询,存在返回value,不存在不报错,默认返回none
# 流程: 1. 先检测是否存在key,如果存在,就不执行新增, 如果不存在, 执行新增
# 2. 并且根据你给的key把value查询出来
setdefault()
- 其他操作
keys() #key的集合
values()# value的集合
items() #键值对的集合(key,value)
字典的迭代
for k in dic:
k #key
dic[k]#value