Files
Python_CookBook_repo/1.数据结构与算法/6.一键多值字典.py
2025-09-10 16:12:45 +08:00

39 lines
1.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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函数拿到所有键再动手