我正在将一些数据整理到字典中,我想知道是否有更好的方法来处理字典
让我们假设我有一个名为dict_
的字典,我将其初始化为
dict_ = {}
现在我有一个对象要迭代并添加到字典中。
for item in iterable:
dict_[key_a] = item.data
如果只有一个item.data要添加到键中,这会起作用,但是如果我有一个数组怎么办?
我知道我可以做到
dict_[key_a] = []
for item in iterable:
dict_[key_a] = [item.data]
但是我想知道是否有一种方法可以跳过dict_[key_a] = []
来使代码更简洁?
使用dict_['key_a'].append(item.data)
会导致错误,这是正确的。
我的预期输出将是
print(dict_)
{'key_a' : ['foo','bar']}
祝大家节日快乐。
答案 0 :(得分:6)
这是一种惯用的方式,使用defaultdict
预先初始化具有空列表作为默认值的键:
from collections import defaultdict
dict_ = defaultdict(list)
for item in iterable:
dict_[key_a].append(item.data)
答案 1 :(得分:1)
使用解压运算符(已编辑为包括梯形图),这是另一种有趣的可能性:
for item in iterable:
if isinstance(item, str):
dict_[key_a] = item.data
elif isinstance(item, list):
dict_[key_a] = [*item.data]
...