W3docs

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:

python— editable, runs on the server

Das Anfordern eines nicht vorhandenen Index löst einen IndexError aus:

fruits = ["apple", "banana", "cherry"]
print(fruits[10])  # IndexError: list index out of range

Prü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"]
python— editable, runs on the server

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.

python— editable, runs on the server

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 error

Slicing 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]  — reversed

Eine 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) # True

Das 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")) # 4

index() 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))  # 3

Auf 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 column

Die 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

SyntaxBeschreibung
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 lstTrue, wenn x vorhanden ist
lst.index(x)Erster Index von x

Verwandte Kapitel

Übungen

Übung
Which of the following ways can be used to access list items in Python?
Which of the following ways can be used to access list items in Python?
Was this page helpful?