我正在整理一些数据到字典中,我想知道是否有更好的方法来使用字典
假设我有一个名为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]
...