我有一份表格字典:
my_dict = {'apples': 'NA', 'pears': 'NA', 'oranges': 'NA'}
和一个看起来像的拉链:
my_zip = {([10, 10], 'apples'), ([100, 2], 'apples')}
我想将这些值添加到my_dict中以产生此效果:
{'apples': [[10,10], [100, 2]], 'pears': 'NA', 'oranges': 'NA'}
答案 0 :(得分:2)
我可能会使用defauldict
代替:
from collections import defaultdict
my_zip = [([10, 10], 'apples'), ([100, 2], 'apples')]
d = defaultdict(list)
for v, k in my_zip:
d[k].append(v)
从那里开始,如果你真的希望'NA'
存在不存在的值,你可以d.get('oranges', 'NA')
,或者另一个技巧是重置default_factory
:
d.default_factory = lambda: 'NA'
虽然我不确定我推荐这个。通常我提倡在您使用"默认"完成后将其设置为None
。您defaultdict
的行为。
您还可以迭代原始密钥,只需将默认值设置为'NA'
:
d.default_factory = None # now d behaves like a regular dict
for key, val in my_dict.items():
d.setdefault(key, val)