Wenn Reihenfolge der Elemente in der gewünschten dict
zählt, und benötigt wird, um sortiert werden, wie in der Frage erwähnt, verwenden collections.OrderedDict
als:
# `original_list` is the variable holding the
# `list` of `dict` as mentioned in the question
required_dict = OrderedDict(
sorted((k, v) for sub_list in original_list for k, v in sub_list.items()))
# `OrderedDict` is represented as:
# OrderedDict([((1, 1), 2), ((1, 2), 3), ((1, 3), 5), ((1, 4), 5), ((1, 5), 10), ((1, 6), 9), ((2, 1), 2), ((2, 2), 3), ((2, 3), 5), ((2, 4), 5), ((2, 5), 10), ((2, 6), 9)])
kehrt aber sortiert dict
beibehalten die Reihenfolge, die der in der Frage gewünschten entspricht:
{(1, 1): 2,
(1, 2): 3,
(1, 3): 5,
(1, 4): 5,
(1, 5): 10,
(1, 6): 9,
(2, 1): 12,
(2, 2): 7,
(2, 3): 7,
(2, 4): 3,
(2, 5): 4,
(2, 6): 2}
Aber wenn Reihenfolge der Elemente in der gewünschten dict
nicht egal, können Sie einfach dict Verständnis verwenden es zu erreichen, wie:
required_dict = {k: v for sub_list in original_list for k, v in sub_list.items()}
, wo der Wert von required_dict
wird:
{
(1, 2): 3,
(2, 6): 9,
(1, 4): 5,
(1, 1): 2,
(1, 5): 10,
(1, 3): 5,
(1, 6): 9,
(2, 1): 2,
(2, 2): 3,
(2, 3): 5,
(2, 5): 10,
(2, 4): 5
}
Hinweis: Reihenfolge der Elemente in der gewünschten dict sind unterschiedlich, weil Wörterbücher in Python von der Natur ungeordnet sind.
Was haben Sie versucht, und was nicht Arbeit? – Vallentin
Es scheint, als ob Sie in der Lage sein sollten, ein Wörterbuch mit jedem Element des Tupels zu "aktualisieren". – mgilson