Teilausgabe einer 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
User0815
User
Beiträge: 4
Registriert: Donnerstag 24. Juni 2010, 07:56

Hallo,

ich mache gerade meine ersten Schritte in Python und habe folgende Frage:
Ich habe eine Liste d
d=[['c1', 'c2', ['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']], ['cc1', 'cc2', ['aa1', 'aa2', 'aa3'], ['bb1', 'bb2', 'bb3']],...]
Ist es möglich aus dieser Liste auf einfachem Wege den Vektor ['a2','aa2',...] auszulesen? Bei einem 3 dimensionalen Array würde ich das mit d[:][2][1] machen, aber das klappt bei den Listen ja leider nicht.

Danke schon einmal für eure Hilfe...
BlackJack

Das ginge recht einfach mit einer "list comprehension":

Code: Alles auswählen

In [1605]: d
Out[1605]:
[['c1', 'c2', ['a1', 'a2', 'a3'], ['b1', 'b2', 'b3']],
 ['cc1', 'cc2', ['aa1', 'aa2', 'aa3'], ['bb1', 'bb2', 'bb3']]]

In [1606]: [a[2][1] for a in d]
Out[1606]: ['a2', 'aa2']
Allerdings sollte man sich IMHO bei solch verschachtelten Listen und Indexzugriffen langsam an Objekte mit sprechenden Methoden- und Attributnamen machen. Solche Indexereien mit "magischen Zahlen" werden schnell unverständlich bis unwartbar.
User0815
User
Beiträge: 4
Registriert: Donnerstag 24. Juni 2010, 07:56

Ja, genau nach sowas habe ich gesucht. Danke!
An ein neues Objekt hatte ich auch schon gedacht... aber irgendwie bin ich dann doch bei quick&dirty hängen geblieben. Bleibt nur zu hoffen, dass sich das im Nachhinein nicht rächt :wink:
Antworten