verschachtelte Liste adressieren

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
hypnoticum
User
Beiträge: 132
Registriert: Dienstag 15. März 2011, 15:43

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?
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.
Antworten