Zusammenführen Wörterbuch-Wert-Listen in python

Ich versuche die Zusammenlegung von drei Wörterbücher, die alle den gleichen Schlüssel besitzen, und entweder Listen von Werten, oder einzelne Werte.

one={'a': [1, 2], 'c': [5, 6], 'b': [3, 4]}
two={'a': [2.4, 3.4], 'c': [5.6, 7.6], 'b': [3.5, 4.5]}
three={'a': 1.2, 'c': 3.4, 'b': 2.3}

Was ich brauche, ist für alle Gegenstände im Werte addiert werden zu einer Liste zusammen.

result={'a': [1, 2, 2.4, 3.4, 1.2], 'c': [5, 6, 5.6, 7.6, 2.3], 'b': [3, 4, 3.5, 4.5, 3.4]}

Ich habe versucht, verschiedene Dinge, aber die meisten setzen die Werte in verschachtelten Listen.
E. g.

out=dict((k, [one[k], two.get(k), three.get(k)]) for k in one)
{'a': [[1, 2], [2.4, 3.4], 1.2], 'c': [[5, 6], [5.6, 7.6], 3.4], 'b': [[3, 4], [3.5, 4.5], 2.3]}

Ich versuchte eine Aktualisierung, indem die Schleife durch die Werte:

out.update((k, [x for x in v]) for k,v in out.iteritems())

aber das Ergebnis war genau das gleiche.
Ich habe versucht, fügen Sie einfach die Listen, aber da das Dritte Wörterbuch hat nur ein schweben, ich konnte es nicht tun.

check=dict((k, [one[k]+two[k]+three[k]]) for k in one)

Also habe ich versucht, fügen Sie zunächst die Listen in Werte von eins und zwei, und dann hängen Sie den Wert von drei. Hinzufügen der Listen funktionierte gut, aber dann, wenn ich versuchte, fügen Sie den Schwimmer aus den Dritten Wörterbuch, plötzlich der ganze Wert ging auf 'None'

check=dict((k, [one[k]+two[k]]) for k in one)
{'a': [[1, 2, 2.4, 3.4]], 'c': [[5, 6, 5.6, 7.6]], 'b': [[3, 4, 3.5, 4.5]]}
new=dict((k, v.append(three[k])) for k,v in check.items())
{'a': None, 'c': None, 'b': None}

InformationsquelleAutor branwen85 | 2014-11-13

Schreibe einen Kommentar