Это код, который я до сих пор пытаюсь проследить через три словаря, имеющих один и тот же ключ, и добавить его соответствующие значения. Если ключа нет, я бы хотел, чтобы код добавлял нуль.Слияние словарей для одного и того же ключа в Python
#!/usr/bin/env python
import sys
from operator import itemgetter
import csv
import ast
from collections import defaultdict
super_dic={}
d1 = {'a':2, 'b':5, 'c':3, 'd':6}
d2 = {'a':3, 'c':3}
d3 = {'b':4, 'd':4}
for d in (d1, d2, d3):
for key, value in d.iteritems():
super_dic.setdefault(key, []).append(value)
print super_dic
Выход super_dic постройки:
{'a': [2, 3], 'c': [3, 3], 'b': [5, 4], 'd': [6, 4]}
Однако, я хотел бы мой конечный результат будет:
{'a':[2, 3, 0], 'c':[3,3,0], 'b':[5,0,4],'d':[6,0,4]}
порядок значений имеет значение
Любая помощь/обратная связь - muc ч оценили. Некоторое время борется с этим, и все подходы стараются не строить правильный мастер-словарь в конце.
* Обратите внимание, что это не дублирующий вопрос, потому что вопросы, заданные с помощью слияния словарей в Python, все игнорируют факт добавления нуля, если ключевой элемент не существует. *
Вам нужны списки значений в том же порядке, что и исходные словари, или достаточно, чтобы иметь [5, 4, 0] вместо [5, 0, 4]? – Prune
@ Приобрести порядок. Я добавлю, что на мой вопрос, так что его ясный – user5927494
@timgeb тот, который проголосовал за +4, решил мою проблему! большое спасибо. Пошел вперед и отметил это как ответ – user5927494