将列表添加到具有未定义键的 for 循环中的字典键



我正在整理一些数据到字典中,我想知道是否有更好的方法来使用字典

假设我有一个名为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']}

祝大家节日快乐。

这是一种惯用的方法,使用defaultdict来预初始化具有空列表作为默认值的键:

from collections import defaultdict
dict_ = defaultdict(list)
for item in iterable:
dict_[key_a].append(item.data)

这是另一种有趣的可能性,使用解包运算符(编辑为包括开关梯(:

for item in iterable:
if isinstance(item, str):
dict_[key_a] = item.data
elif isinstance(item, list):
dict_[key_a] = [*item.data]
...

最新更新