Kurs
In Python helfen dir Datenstrukturen dabei, Daten effizient zu organisieren und zu speichern. Eine gängige und vielseitige Struktur ist eine Liste, die verschiedene Datentypen in einer bestimmten Reihenfolge speichern kann. Python hat auch viele Funktionen oder Methoden, um Listen besser zu bearbeiten. Diese Funktionen sind in der Liste der Python-Funktionen aufgeführt.
In diesem Tutorial lernst du die Python-Funktion index() kennen. Die Methode index() sucht ein Element in der Liste und gibt seine Position/seinen Index zurück. Zuerst lernst du in diesem Tutorial Listen kennen und dann siehst du ein paar einfache Beispiele, wie du mit der Funktion index() arbeiten kannst.
Um alle Beispielcodes in diesem Tutorial ganz einfach selbst auszuführen, kannst du kostenlos eine DataLab-Arbeitsmappe erstellen, in der Python schon installiert ist und alle Code-Beispiele enthalten sind.
Was ist Indizierung in Python?
In Python bedeutet Indizierung, dass man auf ein bestimmtes Element in einer Reihe zugreift, zum Beispiel eine Zeichenfolge oder eine Liste, indem man seine Position oder Indexnummer benutzt. Die Indizierung in Python beginnt bei 0, d. h. das erste Element in einer Sequenz hat den Index 0, das zweite Element den Index 1 usw. Wenn wir zum Beispiel die Zeichenfolge „Hallo“ haben, können wir auf den ersten Buchstaben „H“ über seinen Index 0 zugreifen, indem wir die eckige Klammernotation verwenden: string[0].
Die Python-Funktion index() ist super, um den Index eines bestimmten Elements in einer Sequenz zu finden. Diese Funktion nimmt ein Argument, das den gesuchten Wert darstellt, und gibt den Index des ersten Vorkommens dieses Werts in der Sequenz zurück.
Wenn der Wert nicht in der Sequenz gefunden wird, löst die Funktion einen ValueError aus. Wenn wir zum Beispiel eine Liste [1, 2, 3, 4, 5] haben, können wir den Index des Werts 3 finden, indem wir list.index(3) aufrufen, was den Wert 2 zurückgibt (da 3 das dritte Element in der Liste ist und die Indizierung bei 0 beginnt).
Die Funktion index() ist ein echt praktisches Tool in Python, weil sie das Finden des Index eines Elements in einer Sequenz vereinfacht und das Schreiben von Schleifen oder bedingten Anweisungen überflüssig macht. Diese Funktion ist besonders praktisch, wenn du mit großen Datensätzen oder komplizierten Strukturen arbeitest, wo das manuelle Suchen echt lange dauern und Fehler passieren können.
Python von Grund auf lernen
Was macht die Funktion index()?
Die Methode index() gibt den niedrigsten Index in der Liste zurück, an dem das gesuchte Element vorkommt.
Probieren wir's mal aus:
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 3
print(list_numbers.index(element)) # 2
Wenn nach einem Element gesucht wird, das nicht vorhanden ist, wird ein ValueError zurückgegeben.
list_numbers = [4, 5, 6, 7, 8, 9, 10]
element = 3 # Not in the list
print(list_numbers.index(element)) # Throws a ValueError
Arbeiten mit Strings
Probieren wir's mal mit String-Elementen:
list_numbers = [1, 'two', 3, 4, 5, 6, 7, 8, 9, 10]
element = 'two'
print(list_numbers.index(element)) # 1
Hinweis: index() Bei der Suche nach Zeichenfolgen wird die Groß-/Kleinschreibung berücksichtigt. Zum Beispiel löst 'Hello'.index('h') einen Fehler ValueError aus.
Das erste Vorkommen finden
Stell dir vor, du hast mehr als eine Instanz eines Elements, dann gibt dir index() die erste Position, an der das Element vorkommt.
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
element = 3
print(list_numbers.index(element)) # 0
Die zurückgegebene Position ist 0, weil 3 in Python an erster Stelle bzw. am Index 0 steht.
Hier ist, was intern passiert: Der Index geht alle Werte ab der ersten Position (Index 0) durch und sucht nach dem gesuchten Element. Wenn der Wert gefunden wird, gibt es die Position zurück und verlässt das System. Das ist aber nicht so effizient, wenn du eine lange Liste durchgehst und die Position von etwas am Ende der Liste brauchst.
Start- und Stopp-Parameter verwenden
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
print(list_numbers.index(element, 5, 8)) # 6
Die Syntax lautet also: list_name.index(element, start, stop).
Hier sind die Werte start und stop optional. Benutz das nur, wenn du dir über den Bereich ganz sicher bist, sonst kriegst du eine Fehlermeldung ValueError, wie unten gezeigt.
list_numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
element = 7
print(list_numbers.index(element, 1, 5)) # Throws a ValueError
Alle Vorkommen finden
Da index() nur die erste Übereinstimmung mit einem Objekt zurückgibt, kannst du eine Listenkomprimierung oder einen Generatorausdruck verwenden, wenn du die Positionen weiterer Übereinstimmungen in der Liste brauchst. So geht's:
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
# List comprehension
print([i for i, n in enumerate(list_numbers) if n == 3]) # [0, 3, 4, 8]
list_numbers = [3, 1, 2, 3, 3, 4, 5, 6, 3, 7, 8, 9, 10]
g = (i for i, n in enumerate(list_numbers) if n == 3) # Generator expression
print("Generators store values, the first value here is:", next(g), ". Then the next is:", next(g), "followed by ", next(g),"and finally ", next(g))
# Generators store values, the first value here is: 0. Then the next is: 3 followed by 4 and finally 8
Generatoren sind speichereffizient, weil sie Elemente einzeln ausgeben, anstatt alle Ergebnisse wie Listenkomprimierungen zu speichern.
Abschließende Gedanken
Glückwunsch, du hast gerade die Funktion index() in Python kennengelernt! Du hast gesehen, wie es dir bei der Arbeit mit Listen helfen kann. Du hast auch ein paar neue Begriffe kennengelernt. Mehr zum Thema Listenkomprimierung findest du im Tutorial Python List Comprehension von DataCamp. Im Python-Iterator-Tutorial von DataCamp gibt's mehr Infos zu Generatoren und Generatorausdrücken.
Lass dich für deine Traumrolle als Data Scientist zertifizieren
Unsere Zertifizierungsprogramme helfen dir, dich von anderen abzuheben und potenziellen Arbeitgebern zu beweisen, dass deine Fähigkeiten für den Job geeignet sind.


Ich habe in verschiedenen Branchen gearbeitet und mehrere Aufgaben übernommen: Softwareentwickler, Forscher für maschinelles Lernen, Datenwissenschaftler und Produktmanager. Aber im Grunde bin ich ein Programmierer, der es liebt, zu lernen und sein Wissen zu teilen!
Häufig gestellte Fragen
Was passiert, wenn mehrere Werte mit dem gesuchten Element übereinstimmen?
Die Methode „ index() “ gibt nur den Index des ersten Vorkommens des passenden Elements zurück. Wenn du alle Positionen brauchst, nimm eine Listenkomprimierung mit „ enumerate() “.
Kann ich index() mit Tupeln oder Strings verwenden?
Ja! Die Methode „ index() “ funktioniert bei jedem Sequenztyp, auch bei Tupeln und Strings:
my_tuple = (1, 2, 3, 2)
print(my_tuple.index(2)) # Output: 1
text = "hello world"
print(text.index('o')) # Output: 4Gibt's eine Möglichkeit, ValueError elegant zu handhaben?
Ja, pack den Aufruf von „ index() “ in einen „ try...except “-Block, damit es nicht abstürzt, wenn das Element nicht gefunden wird:
my_list = [1, 2, 3]
try:
print(my_list.index(4))
except ValueError:
print("Element not found.")
Wie kann ich am Ende der Liste suchen?
Die Methode „ index() “ kann keine Rückwärtssuche machen. Um das letzte Vorkommen zu finden, kannst du die Liste manuell umdrehen oder eine Zusammenfassung verwenden:
my_list = [1, 2, 3, 2, 1]
last_index = len(my_list) - 1 - my_list[::-1].index(2)
print(last_index) # Output: 3
Was ist der Unterschied zwischen index() und find()?
Die Methode „ find() “ wird mit Zeichenfolgen verwendet und gibt „ -1 “ zurück, anstatt einen Fehler auszulösen, wenn der Wert nicht gefunden wird. Listen haben keine Methode „ find() “.
text = "hello"
print(text.find('e')) # Output: 1
print(text.find('z')) # Output: -1
Kann ich index() mit verschachtelten Listen verwenden?
Ja, aber nur auf der obersten Ebene. „ index() “ sucht nicht in verschachtelten Strukturen.
nested_list = [[1, 2], [3, 4]]
print(nested_list.index([3, 4])) # Output: 1
# This won't work: nested_list.index(3)
Was ist der Fehler „Listenindex außerhalb des Bereichs“?
Der Fehler „Listenindex außerhalb des Bereichs“ tritt auf, wenn du versuchst, auf einen Index zuzugreifen, der außerhalb des Bereichs der gültigen Indizes für eine Liste liegt. Wenn eine Liste zum Beispiel 5 Elemente hat, sind die Indizes 0 bis 4 okay. Wenn du versuchst, auf einen Index zuzugreifen, der größer oder gleich 5 ist, bekommst du diese Fehlermeldung.
Um den Fehler „Listenindex außerhalb des Bereichs“ zu vermeiden, solltest du sicherstellen, dass der Index, auf den du zugreifen möchtest, innerhalb des Bereichs der gültigen Indizes für die Liste liegt. Mit der Funktion „ len() “ kannst du die Länge einer Liste ermitteln und prüfen, ob ein Index im Bereich der gültigen Indizes liegt.
Was bedeutet der Fehler „Listenindizes müssen ganze Zahlen sein“?
Der Fehler „Listenindizes müssen ganze Zahlen sein“ kommt, wenn du einen nicht ganzzahligen Wert als Listenindex verwenden willst. Wenn du zum Beispiel versuchst, eine Gleitkommazahl oder eine Zeichenfolge als Listenindex zu verwenden, bekommst du diese Fehlermeldung.
Um den Fehler „Listenindizes müssen ganzzahlig sein“ zu vermeiden, solltest du sicherstellen, dass du einen ganzzahligen Wert als Listenindex verwendest. Wenn du einen nicht ganzzahligen Wert als Index verwenden musst, kannst du ihn mit der Funktion „ int() “ in eine ganze Zahl umwandeln.
