"Abflachung" wird eine Liste der Wörterbücher

Also ist mein Ziel zu gehen aus:

fruitColourMapping = [{'apple': 'red'}, {'banana': 'yellow'}]

zu

finalMap = {'apple': 'red', 'banana': 'yellow'}

Einer Weise, die ich habe ist:

 from itertools import chain
 fruits = list(chain.from_iterable([d.keys() for d in fruitColourMapping]))
 colour = list(chain.from_iterable([d.values() for d in fruitColourMapping]))
 return dict(zip(fruits, colour))

Ist es besser mehr pythonic way?

  • FYI, Sie wirklich nicht wollen, es zu tun auf diese Weise. Wörterbücher sind intrinsisch ungeordnete, es ist also nur eine Frage des Glücks, dass die Iteration über das Wörterbuch zweimal (wie Sie tun, zu bauen, die fruit und color lists) generiert 2 Sätze von Werten in der richtigen Reihenfolge.
  • nicht wahr. Die Dokumentation ausdrücklich, dass, wenn Sie Durchlaufen Schlüssel und Werte, ohne mutierend das Wörterbuch in der Zwischenzeit, die Reihenfolge ist garantiert entsprechen.
  • Es ist immer noch nicht eine gute Angewohnheit, in zu erhalten, aber. Es ist nicht thread-sicher, wenn das jemals wird zu einem Problem, und nur weil etwas implementiert die gleiche Schnittstelle wie ein Wörterbuch, bedeutet nicht, es verhält sich genau wie ein Wörterbuch, diese Art von details. Es ist die Art von Sache, funktioniert gut, bis es nicht, und dann bekommen Sie subtile schwer aufspüren von Fehlern. Es ist leicht genug, um zu vermeiden, so dass Sie könnte genauso gut tun.
InformationsquelleAutor user1741339 | 2013-03-26
Schreibe einen Kommentar