Lista wartości duplikatów kluczy w słowniku Python
Z góry przepraszam, jeśli to pytanie zostało już zbadane tutaj - spojrzałem na różne odpowiedzi tutaj, ale nie mogłem znaleźć tego, czego potrzebuję.
Moim celem jest stworzenie takiego słownika -{'a':[10, 9, 10, 10], 'b':[10, 9, 1, 0], 'c':[0, 5, 0, 1], and so on}
Mam wiele słowników z duplikatami kluczy (te same klucze w każdym innym słowniku), coś takiego{'a':10, 'b': 0, 'c': 2}
{'a':7, 'b': 4, 'c': 4}
{'a':4, 'b': 5, 'c': 3}
Nie mam sposobu na poznanie liczby takich słowników lub jeśli są klucze do „f” lub „g”, ale wiem, że klucze są zduplikowane. próbowałemdefaultdict
ale dostaję--
defaultdict(<type 'list'>, {'a': [10]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3]})
defaultdict(<type 'list'>, {'a': [10], 'b': [3], 'c': [0]})
a potem to samo dla następnego słownika -
defaultdict(<type 'list'>, {'a': [4]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5]})
defaultdict(<type 'list'>, {'a': [4], 'b': [5], 'c': [1]})
Kod, który mam dla powyższego wyniku to -
d = collections.defaultdict(list)
for k, v in z.iteritems():
d[k].append(v)
c = d.items()
print d
Jeśli zrobięprint c
zamiast tego (aby wydrukowaćd.items()
) Dostaję --
[('a', [10])]
[('a', [10]), ('b', [3])]
[('a', [10]), ('c', [0]), ('b', [3])]
który jest ponownie powtarzany dla każdego słownika. Jak uzyskać 1 dyktat trzymający wszystkie klucze, wartości -
{'a':[10,0,..], 'b':[4, 3, 4,..], etc.} ?
Powinienem również dodać, że dicts, które mam, są wynikiem pętli for i nie są przechowywane indywidualnie w unikalnej zmiennej.