Schleife ueber verschachtelte Liste

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
der_Gerhard
User
Beiträge: 14
Registriert: Mittwoch 21. September 2005, 09:06

Hi *,

kennt jemand von euch eine Moeglichkeit auf alle Elemente einer verschachtelte Liste, die zur Laufzeit des Programms erstellt wird, im gleichen Programm zuzugreifen? Man braucht ja soviele Schleifen, wie Verschachtelungstiefen. Die einzige Moeglichkeit, die ich sehe, ist mir den Pythoncode fuer die Schleifen im Programm zu erzeugen und diese dann mit exec auszufuehren. Gibt es da eine einfachere Moeglichkeit?

Beispiel solch einer Liste:

Code: Alles auswählen

erg =[
              ['T1', 
                    ['c1', 'd1'],
                    ['b1', 
                         ['b2',
                              ['a3', '2'], ['b3', '3']
                         ],
                         ['a2', '4']
                     ],
                     ['a1', '5']
               ]
           ]
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Code: Alles auswählen

def rekursiv(data, deep=0):
    for i in data:
        if type(i)==list:
            rekursiv(i,deep+4)
        else:
            print " "*deep, i

rekursiv(erg)
Ergebnis:

Code: Alles auswählen

     T1
         c1
         d1
         b1
             b2
                 a3
                 2
                 b3
                 3
             a2
             4
         a1
         5

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
der_Gerhard
User
Beiträge: 14
Registriert: Mittwoch 21. September 2005, 09:06

Hi Jens,
jens hat geschrieben:

Code: Alles auswählen

def rekursiv(data, deep=0):
    for i in data:
        if type(i)==list:
            rekursiv(i,deep+4)
        else:
            print " "*deep, i

rekursiv(erg)
Ergebnis:

Code: Alles auswählen

     T1
         c1
         d1
         b1
             b2
                 a3
                 2
                 b3
                 3
             a2
             4
         a1
         5
Du bist ein Schatz *g*. Dank dir vielmals.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

der_Gerhard hat geschrieben:Du bist ein Schatz *g*. Dank dir vielmals.
Und du wärst ein Schatz wenn du nicht alles unnötig zitieren würdest :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
der_Gerhard
User
Beiträge: 14
Registriert: Mittwoch 21. September 2005, 09:06

jens hat geschrieben:Und du wärst ein Schatz wenn du nicht alles unnötig zitieren würdest :lol:
Ich gelobe Besserung.
Antworten