Einführung
Listen sind im Vergleich zu anderen Datentypen auf unterschiedliche Weise nützlich, weil sie so vielseitig sind. In diesem Artikel werfen wir einen Blick auf eine der häufigsten Operationen mit Listen – das Finden des Index eines Elements.
Wir werden uns verschiedene Szenarien für das Finden eines Elements ansehen, d.h. das Finden des ersten, letzten und aller Vorkommen eines Elements. Und was passiert, wenn das gesuchte Element nicht existiert.
Verwenden der index()-Funktion
Der element
-Parameter repräsentiert natürlich das gesuchte Element. Die Parameter start
und end
sind optional und stellen den Bereich der Indizes dar, in dem wir nach dem element
suchen.
Der Standardwert für start
ist 0
(Suche von Anfang an), und der Standardwert für end
ist die Anzahl der Elemente in der Liste (Suche bis zum Ende der Liste).
Die Funktion gibt die erste Position des element
in der Liste zurück, die sie finden konnte, unabhängig davon, wie viele gleiche Elemente es nach dem ersten Vorkommen gibt.
Das erste Vorkommen eines Elements finden
Bei Verwendung der Funktion index()
ohne Setzen von Werten für start
und end
liefert uns das erste Vorkommen des gesuchten element
:
my_list = first_occurrence = my_list.index('b')print("First occurrence of 'b' in the list: ", first_occurrence)
Was uns die erwartete Ausgabe liefern würde:
First occurrence of 'b' in the list: 1
Alle Vorkommen eines Elements finden
Um alle Vorkommen eines Elements zu finden, können wir den optionalen Parameter start
verwenden, damit wir nur in bestimmten Segmenten der Liste suchen.
Sagen wir zum Beispiel, dass wir das erste Vorkommen eines Elements bei Index 3
finden würden. Um das nächste zu finden, müssten wir unsere Suche nach dem ersten Auftreten dieses Elements nach dem Index 3
fortsetzen. Wir würden diesen Prozess wiederholen, wobei wir den Beginn der Suche ändern würden, solange wir neue Vorkommen des Elements finden:
Die Ausführung dieses Codes würde uns ergeben:
The element was found at:
Wir mussten hier einen try
-Block verwenden, da die index()
-Funktion einen Fehler auslöst, wenn sie das angegebene element
im angegebenen Bereich nicht finden kann. Das mag für Entwickler, die eher an andere Sprachen gewöhnt sind, ungewöhnlich sein, da Funktionen wie diese normalerweise -1
null
zurückgeben, wenn das Element nicht gefunden werden kann.
In Python müssen wir jedoch vorsichtig sein und einen try
-Block verwenden, wenn wir diese Funktion verwenden.
Eine andere, elegantere Möglichkeit, das Gleiche zu tun, wäre, das Listenverständnis zu verwenden und die index()
-Funktion ganz zu ignorieren:
Was uns die gleiche Ausgabe wie zuvor liefern würde. Dieser Ansatz hat den zusätzlichen Vorteil, dass der try
-Block nicht verwendet wird.
Das letzte Vorkommen eines Elements finden
Wenn Sie das letzte Vorkommen eines Elements in der Liste finden müssen, gibt es zwei Ansätze, die Sie mit der index()
-Funktion verwenden können:
- Die Liste umkehren und nach dem ersten Vorkommen in der umgekehrten Liste suchen
- Alle Vorkommen des Elements durchgehen und nur das letzte Vorkommen verfolgen
Beim ersten Ansatz könnten wir, wenn wir das erste Vorkommen des element
in einer umgekehrten Liste kennen, die Position des letzten Vorkommens in der ursprünglichen Liste finden. Genauer gesagt, können wir dies tun, indem wir reversed_list_index - 1
von der Länge der ursprünglichen Liste subtrahieren:
Was uns die gewünschte Ausgabe liefern würde:
6
Beim zweiten Ansatz könnten wir den Code, mit dem wir alle Vorkommen gefunden haben, abändern und nur das letzte gefundene Vorkommen verfolgen:
Was uns die gleiche Ausgabe liefern würde: