Iteration durch ein Dictionary

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Nergal
User
Beiträge: 72
Registriert: Montag 6. Oktober 2008, 14:02

Montag 11. Mai 2009, 13:28

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:
BlackJack

Montag 11. Mai 2009, 13:37

Code: Alles auswählen

dest = dict((key, [v.function() for v in values])
            for key, values in source.iteritems())
Nergal
User
Beiträge: 72
Registriert: Montag 6. Oktober 2008, 14:02

Montag 11. Mai 2009, 13:43

Danke für die schnelle Antwort.

Gruß
Nergal
Antworten