Seite 1 von 1
Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 00:28
von haseluenne
Hallo! Wenn ich eine nested list nach dem Schema
habe, wie komme ich dann an die jeweils nullten Elemente der inneren Listen dran, sprich 1,4,6; 2,5,8 usw.?
Habe es (für die ersten Elemente) mit z.B.
versucht, aber das liefert mir
?
Bin echt ratlos was der da anstellt sobald man zweidimensional nen Bereich mit Doppelpunkten angibt, wenn man nur Einzelzahlen eingibt ala
liefert er mir anstandslos jeden skalaren Wert an jeder Position.
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 00:45
von anogayales
Wie wär's mit einer Schleife oder List Comprehension à la
Code: Alles auswählen
In [4]: [elem[0] for elem in a]
Out[4]: [1, 4, 7]
In [5]: [elem[1] for elem in a]
Out[5]: [2, 5, 8]
In [6]: [elem[2] for elem in a]
Out[6]: [3, 6, 9]
Anstatt in Zukunft zu raten was du machst, kannst du beim slicing Zwischenschritte ausgeben à la
Code: Alles auswählen
In [7]: a[0:2]
Out[7]: [[1, 2, 3], [4, 5, 6]]
In [8]: a[0:2][1]
Out[8]: [4, 5, 6]
Grüße,
anogayales
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 00:49
von derdon
Code: Alles auswählen
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> zip(*a)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>>> zip(*a)[0]
(1, 4, 7)
>>> zip(*a)[1]
(2, 5, 8)
>>> zip(*a)[2]
(3, 6, 9)
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 08:07
von Rekrul
operator.itemgetter
kleines Beispiel:
Code: Alles auswählen
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> from operator import itemgetter
>>> map(itemgetter(0), a)
[1, 4, 7]
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 08:34
von JonasR
Nur der Vollständigkeit halber

Nicht ernst zu nehmen
Code: Alles auswählen
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> map(lambda a:a[0], a)
[1, 4, 7]
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 09:38
von Rekrul
Mit numpy
Code: Alles auswählen
>>> import numpy
>>> a = numpy.asarray([[1,2,3],[4,5,6],[7,8,9]])
>>> a[:,0]
array([1, 4, 7])
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 11:18
von /me
Das ist doch alles viel zu umständlich.
Code: Alles auswählen
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list(next(value for value in sublist) for sublist in a)
[1, 4, 7]
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 12:04
von Kebap
haseluenne hat geschrieben:
Bin echt ratlos was der da anstellt sobald man zweidimensional nen Bereich mit Doppelpunkten angibt
Hallo! Dein Problem war, dass du mit den Doppelpunkten erneut eine nested Liste erzeugt hattest. Kann nur unterschreiben, wie hilfreich ein häufiges
print beim debuggen sein kann.
Re: Nur bestimme Elemente aus Nested List auslesen
Verfasst: Dienstag 7. Februar 2012, 23:35
von derdon
/me hat geschrieben:Das ist doch alles viel zu umständlich.
Code: Alles auswählen
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list(next(value for value in sublist) for sublist in a)
[1, 4, 7]
Das geht auch unumständlicher:
Code: Alles auswählen
>>> a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> list(next(iter(sublist)) for sublist in a)
[1, 4, 7]