39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
|
from collections import defaultdict
|
|||
|
|
|||
|
|
|||
|
# 当你新建一个普通字典,对字典中不存在的key进行调用时会报错
|
|||
|
a = {}
|
|||
|
try:
|
|||
|
print(a["key"])
|
|||
|
pass
|
|||
|
except:
|
|||
|
print("err")
|
|||
|
|
|||
|
|
|||
|
# 如果使用defaultdict进行字典初始化建立,就不存在这个问题;
|
|||
|
# 当出现不存在的key的时候,会根据默认设置进行默认值创建
|
|||
|
b = defaultdict(list)
|
|||
|
print(b["key"])
|
|||
|
|
|||
|
# 但是这样就有一个问题,这个key就会一直在这里等待调用,如果没有用到就是垃圾
|
|||
|
print(b)
|
|||
|
|
|||
|
# 这个方法可以用于记录的添加;比如一个方法如下:
|
|||
|
|
|||
|
pairs = [{"a":10},{"b":10},{"b":10}]
|
|||
|
d = {}
|
|||
|
for key, value in pairs:
|
|||
|
if key not in d:
|
|||
|
d[key] = []
|
|||
|
d[key].append(value)
|
|||
|
|
|||
|
# 很明显这样就显得很蠢,我还要判断一下键在不在里面
|
|||
|
# 使用defaultdict就没有这个困扰,直接省略一键添加
|
|||
|
|
|||
|
d = defaultdict(list)
|
|||
|
for key, value in pairs:
|
|||
|
d["key"].append(value)
|
|||
|
|
|||
|
# 当然为了避免生成空键,使用这东西的时候切记在里面翻东西的时候别直接用dict[key]输入;
|
|||
|
# 先用keys函数拿到所有键再动手
|