Python liste - bestimmte Indexe anzeigen lassen?

2 Antworten

Direkt ginge das mit Slices, aber nur, wenn die Abstände regelmäßig sind. Etwa wenn du jedes dritte Element rausholen willst:

li[::3]

Alternativ könnte man es mit einer separaten Liste von Indizes zusammenbasteln:

[li[i] for i in (0, 2, 3)]

In beiden Fällen bekommst du wieder eine Liste. Willst du die Elemente z.B. durch Komma oder sonst ein Zeichen getrennt anzeigen, empfiehlt sich str.join(), um einen String zu bauen. Etwa so:

" ".join(li[i] for i in (0, 2, 3))

Alternativ kann man die Liste auch in einzelne Parameter für print() aufdröseln lassen, die werden dann automatisch durch Leerzeichen getrennt ausgegeben:

print(*(li[i] for i in (0, 2, 3)))

ralphdieter  15.12.2024, 17:56

Noch 'ne Möglichkeit:

print( "{0}{2}{3}".format(*li) )

Wenn Lücken zwischen dne einzelnen Elementen, die Du extrahieren möchtest, bestehen, dann gibt es dafür keine andere Option, außer vielleicht mit einer comprehension.

Ich teste das gerade mal noch, ob mein Gedanke so funktioniert. Tut es:

[ v for i,v in enumerate(li) if i in (0,2,3)]

So kannst Du eine entsprechende Teilliste erzeugen. Die Frage ist halt, wie Du das weiterverwenden willst.


jo135  11.12.2024, 20:15

Der Umweg übers enumerate und die Bedingung ist nicht nötig - man kann einfach nur den Index verwenden, der aus dem Tupel kommt.