Auf Listenelemente in Python zugreifen
Lerne, wie du in Python auf Listenelemente mit positivem und negativem Index, Slicing mit Schrittweite, verschachtelten Listen und der index()-Methode zugreifst.
Eine Python-Liste ist eine geordnete, veränderliche Sequenz, die Elemente beliebigen Typs enthalten kann. Da Listen geordnet sind, hat jedes Element eine feste numerische Position — den sogenannten Index — mit dem du Daten lesen, aktualisieren oder slicen kannst.
Dieses Kapitel behandelt:
- Positiven und negativen Index
- Slicing (start, stop, step)
- Mitgliedschaft prüfen mit
in - Positionen finden mit
index() - Auf Elemente in verschachtelten Listen zugreifen
Zum Ändern von Listen siehe Listenelemente ändern, Listenelemente hinzufügen und Listenelemente entfernen.
Positiver Index
Python verwendet nullbasierte Indizierung: Das erste Element hat den Index 0, das zweite Index 1 und so weiter.
Index: 0 1 2 3 4
↓ ↓ ↓ ↓ ↓
fruits = ["apple","banana","cherry","durian","elderberry"]Verwende eckige Klammern [], um ein Element über seinen Index abzurufen:
Das Anfordern eines nicht vorhandenen Index löst einen IndexError aus:
fruits = ["apple", "banana", "cherry"]
print(fruits[10]) # IndexError: list index out of rangePrüfe immer len(list) - 1, um die gültige Obergrenze zu ermitteln, oder verwende einen try/except-Block, wenn die Länge unbekannt ist.
Negativer Index
Negative Indizes zählen rückwärts vom Ende der Liste. Index -1 ist das letzte Element, -2 das vorletzte und so weiter.
Index: -5 -4 -3 -2 -1
↓ ↓ ↓ ↓ ↓
fruits = ["apple","banana","cherry","durian","elderberry"]Negativer Index ist besonders nützlich, wenn du das letzte Element einer Liste mit unbekannter Länge benötigst.
Listen slicen
Ein Slice extrahiert eine Teilliste mit der Syntax list[start:stop]. Der start-Index ist eingeschlossen, der stop-Index ist ausgeschlossen.
Slicing löst nie einen IndexError aus — Python begrenzt außerhalb des Bereichs liegende Grenzen automatisch:
fruits = ["apple", "banana", "cherry"]
print(fruits[1:100]) # ['banana', 'cherry'] — no errorSlicing mit Schrittweite
Ein dritter Parameter — die Schrittweite — steuert, wie viele Elemente bei jeder Auswahl übersprungen werden: list[start:stop:step].
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[0:9:2]) # [0, 2, 4, 6, 8] — every second item
print(numbers[::3]) # [0, 3, 6, 9] — every third item
print(numbers[::-1]) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] — reversedEine negative Schrittweite kehrt die Richtung um, daher ist list[::-1] der idiomatische Weg, eine Liste umzukehren, ohne sie direkt zu verändern.
Slicing mit negativem Index
Negative Indizes funktionieren auch in Slices:
fruits = ["apple", "banana", "cherry", "durian", "elderberry"]
print(fruits[-3:]) # ['cherry', 'durian', 'elderberry'] — last 3
print(fruits[-4:-1]) # ['banana', 'cherry', 'durian']Prüfen, ob ein Element vorhanden ist
Verwende den in-Operator, um die Mitgliedschaft zu prüfen, ohne den Index zu kennen:
fruits = ["apple", "banana", "cherry", "durian", "elderberry"]
print("banana" in fruits) # True
print("mango" in fruits) # False
print("mango" not in fruits) # TrueDas ist sauberer als manuelles Iterieren und ist das bevorzugte Muster für Existenzprüfungen.
Den Index eines Elements finden
Die Methode index() gibt die Position des ersten Vorkommens eines Wertes zurück:
fruits = ["apple", "banana", "cherry", "banana", "elderberry"]
print(fruits.index("banana")) # 1 — first occurrence
print(fruits.index("elderberry")) # 4index() löst einen ValueError aus, wenn der Wert nicht gefunden wird. Sicherne den Aufruf zuerst mit in ab:
fruits = ["apple", "banana", "cherry"]
target = "mango"
if target in fruits:
print(fruits.index(target))
else:
print(f"{target!r} is not in the list")Du kannst die Suche auch auf einen Bereich beschränken mit index(value, start, stop):
fruits = ["apple", "banana", "cherry", "banana", "elderberry"]
# Find 'banana' starting from index 2 (skips the first occurrence)
print(fruits.index("banana", 2)) # 3Auf Elemente in verschachtelten Listen zugreifen
Eine Liste kann andere Listen als Elemente enthalten. Greife auf verschachtelte Elemente zu, indem du Indexklammern verkettst:
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
print(matrix[0]) # [1, 2, 3] — first row
print(matrix[1][2]) # 6 — row 1, column 2
print(matrix[-1][-1]) # 9 — last row, last columnDie gleiche Slicing-Syntax gilt auch für verschachtelte Listen:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[0][1:]) # [2, 3]Kurzübersicht
| Syntax | Beschreibung |
|---|---|
lst[i] | Element am Index i (0-basiert) |
lst[-i] | Element i Positionen vom Ende |
lst[a:b] | Slice von a (einschließlich) bis b (ausschließlich) |
lst[a:b:s] | Slice mit Schrittweite s |
lst[::-1] | Umgekehrte Kopie der Liste |
x in lst | True, wenn x vorhanden ist |
lst.index(x) | Erster Index von x |
Verwandte Kapitel
- Python-Listen — Listenerstellung, Eigenschaften und Überblick
- Listenelemente ändern — Werte per Index aktualisieren
- Listenelemente hinzufügen —
append(),insert(),extend() - Listenelemente entfernen —
remove(),pop(),del - Listen durchlaufen — über jedes Element iterieren
- Listenmethoden — vollständige Methodenreferenz
- List Comprehension — prägnante Listenkonstruktion