Seite 1 von 1

Iteration durch ein Dictionary

Verfasst: Montag 11. Mai 2009, 13:28
von Nergal
Hallo,

ich habe folgende Datenstruktur

Code: Alles auswählen

>>> source
{<Key> : [Object, Object, Object], '<Key>' : [Object, Object]}
Die Objekte in den Listen sind Instanzen einer selbstgeschriebenen Klasse.

Ich möchte mit jedem der Objekte eine Funktion der Klasse aufrufen und das Ergebniss in einem neuen Dictionary mit gleicher Struktur speichern.

Mein erster Schritt war:

Code: Alles auswählen

dest = {}
for each in source:
 	temp = []
 	for item in source[each]:
 		temp.append(item.function())
 	dest[each] = source
Der nächste Schritt war:

Code: Alles auswählen

dest = {}
for each in source:
 	temp = []
     temp.extend(item.function() for item in source[each])
     dest[each] = temp
Allerdings weiß ich nun nicht, wie ich das ganze weiter vereinfachen kann.

Die Datenstruktur soll gleich bleiben und auch die Funktionsaufrufe.
Mich würde einfach nur interessieren, in wie weit man den Code kürzen kann.

Gruß
Nergal

Mir ist leider kein sinnvollerer Threadtitel eingefallen :oops:

Verfasst: Montag 11. Mai 2009, 13:37
von BlackJack

Code: Alles auswählen

dest = dict((key, [v.function() for v in values])
            for key, values in source.iteritems())

Verfasst: Montag 11. Mai 2009, 13:43
von Nergal
Danke für die schnelle Antwort.

Gruß
Nergal