Seite 1 von 1

verschachtelte Liste adressieren

Verfasst: Freitag 15. April 2011, 08:48
von hypnoticum
Hallo,
wenn ich eine verschachtelte Liste habe:

Code: Alles auswählen

Liste = [[1, ['a', 'b']], [2, ['c', 'd']]]
dann hatte ich erwartet mit
Liste [:][0]
als Ergebnis jeweils das erste Listenelement also 1 und 2 erwartet, bekomme aber [1, ['a', 'b']]

wie kann ich aus einer beliebig tief geschachtelten Liste immer die ersten Listenelemente erhalten?

Re: verschachtelte Liste adressieren

Verfasst: Freitag 15. April 2011, 08:54
von lunar
@hypnoticum: Deine Erwartung ist nicht richtig, und offenbar fehlendes Verständnis für Slicing. "[:]" ist nicht magisch, und bedeutet insbesondere nicht "alle Elemente der Liste". Es erzeugt einfach nur eine Kopie der gesamten Liste, so wie "[1:4]" eine Kopie vom zweiten bis zum vierten Element erzeugt.

Es gibt keine direkte Syntax für Deine Anforderung. Du musst Dir mit einem Listenausdruck behelfen:

Code: Alles auswählen

[i[0] for i in l]
Ansonsten ist es aus Gründen der Übersichtlichkeit nicht sonderlich ratsam, tief geschachtelte Datenstrukturen zu verwenden.