这似乎是一个简单的任务:
我正在尝试合并 2 个字典而不覆盖值但追加。
a = {1: [(1,1)],2: [(2,2),(3,3)],3: [(4,4)]}
b = {3: [(5,5)], 4: [(6,6)]}
元组数 a = 4,元组数 b = 2
这就是为什么我选择了这些选项,因为它们正在覆盖:
all = dict(a.items() + b.items())
all = dict(a, **b)
all = a.update([b])
以下解决方案工作得很好,但它也将值附加到我的原始字典 a:
all = {}
for k in a.keys():
if k in all:
all[k].append(a[k])
else:
all[k] = a[k]
for k in b.keys():
if k in all:
all[k].append(b[k])
else:
all[k] = b[k]
输出 =
a = {1: [(1, 1)], 2: [(2, 2), (3, 3)], 3: [(4, 4), **[(5, 5)]**]}
b = {3: [(5, 5)], 4: [(6, 6)]}
c = {1: [(1, 1)], 2: [(2, 2), (3, 3)], 3: [(4, 4), [(5, 5)]], 4: [(6, 6)]}
元组数 a = 5 !!!!!! ,元组数 b = 2(正确),元组数全部 = 6(正确)
[(5,5)]
它将元组从 b附加到 a。我不知道为什么会发生这种情况,因为我正在编码的只是将所有内容写入完整的字典“all”。
谁能告诉我它到底在哪里改变 dict(a) ???????
非常欢迎任何帮助。