如何在不替换先前值的情况下向现有字典键添加值?

时间:2018-12-04 19:32:53

标签: python dictionary

所以我有一个字典,我将其称为(a),然后运行一个循环以根据每个(a)的键基于每个键具有的特定标签对其他几个字典进行排序,但这是不相关的。问题是,每次循环运行时,字典都会更新,而以前的值会被新的替换。我想要的是,我希望循环如果发现任何新值,则继续向(a)添加值,而不是替换原始值。 我尝试过:

          dictionary[i] = smalldict

其中i是所需的键,smalldict是我使用for循环循环通过的较小字典。每当这一行代码运行时,smalldict的先前值就会被新的替换。如何在不删除旧值的情况下将新找到的值“追加”到字典的键上?

tl / dr:       如何使字典保留其原始值并添加新值?

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您没有发布期望的结果,因此很难根据描述确定要执行的操作,但是我认为这就是您想要执行的操作...

a = {}
b = dict(a=1, b=2, c=3)
c = dict(b=9,c=10, d=99)

def append_items_to_dict(d_in: dict, d_out: dict):
    for k, v in d_in.items():
        d_out.setdefault(k, []).append(v)

append_items_to_dict(b, a)
append_items_to_dict(c, a)
print(a)

结果

{'a': [1], 'b': [2, 9], 'c': [3, 10], 'd': [99]}