Suchen Sie den Index eines Elements in einer Liste in Python

Rayven Esplanada 30 Januar 2023
  1. Verwenden Sie die List index()-Methode, um den Index einer Liste in Python zu finden
  2. Verwenden Sie numpy.where(), um den Index einer Liste in Python zu finden
Suchen Sie den Index eines Elements in einer Liste in Python

Dieses Tutorial zeigt, wie Sie die Position oder den Index eines Elements in einer Python-Liste finden.

Verwenden Sie die List index()-Methode, um den Index einer Liste in Python zu finden

Die Python-Liste verfügt über eine integrierte Methode namens index(), die einen einzelnen Parameter akzeptiert, der den Wert darstellt, der in der vorhandenen Liste gesucht werden soll. Die Funktion gibt den Index des ersten Vorkommens zurück, das sie ab dem Index 0 findet, unabhängig davon, wie oft er in der Liste vorkommt.

Deklarieren Sie beispielsweise eine Liste mit dem Wiederholungswert 20, rufen Sie die Funktion index(20) auf und drucken Sie die Rückgabe.

lst = [13, 4, 20, 15, 6, 20, 20]

print(lst.index(20))

Ausgabe:

2

Das erste Auftreten des Wertes 20 im Array lst war im Index 2, der das Ergebnis des Funktionsaufrufs ist. Die anderen Elemente mit demselben Wert werden ignoriert, da bereits eine Übereinstimmung in der Liste gefunden wurde.

Was passiert, wenn in der angegebenen Liste kein Wert vorhanden ist und wir index() aufrufen und den nicht vorhandenen Wert übergeben? Nehmen wir zum Beispiel dies.

lst = [13, 4, 20, 15, 6, 20, 20]

print(lst.index(21))

Ausgabe:

ValueError: 21 is not in list

Die Funktion gibt einen Fehler aus, wenn der Index nicht in der Liste gefunden wird. In einigen Fällen kann es ungünstig sein, einen Fehler aufzurufen. Um dies zu vermeiden, fangen Sie den Fehler mit einem Block try...except ab und machen Sie ihn so, dass Sie ihn als -1 zuweisen, wenn der Index nicht in der Liste vorhanden ist.

lst = [13, 4, 20, 15, 6, 20, 20]

try:
    ndx = lst.index(21)
except:
    ndx = -1

print(ndx)

Ausgabe:

-1

Auf diese Weise muss kein expliziter Fehler aufgerufen werden, und das Programm kann nach dem Vorgang weiter ausgeführt werden.

Verwenden Sie numpy.where(), um den Index einer Liste in Python zu finden

Das Modul NumPy verfügt über eine vordefinierte Funktion namens where(), die sich mit dem Auffinden mehrerer Elemente in einer Liste befasst und eine Bedingung akzeptiert.

In diesem Fall verwenden wir ausschließlich where(), um die Indizes eines bestimmten Werts zu lokalisieren. Im Gegensatz zur integrierten Funktion index() kann die Funktion where() eine Liste von Indizes zurückgeben, in denen sich der Wert befindet, wenn er mehr als einmal in einer Liste vorhanden ist. Dies ist nützlich, wenn Sie alle Vorkommen des Werts anstelle nur des ersten Vorkommens benötigen.

Der erste Schritt besteht darin, eine Python-Liste in ein NumPy-Array zu konvertieren. Rufen Sie dazu die Funktion np.array() auf.

import numpy as np

lst = np.array(lst=[13, 4, 20, 15, 6, 20, 20])

Nach der Initialisierung des Arrays NumPy müssen wir nur den ersten Parameter von where() füllen. Initialisieren Sie den ersten Parameter als lst == 20, um die Indizes der angegebenen Liste mit dem Wert 20 zu suchen.

import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result)

Ausgabe:

(array([2, 5, 6]),)

Da sich NumPy hauptsächlich mit Matrizen befasst, gibt die Funktion where() ein Tupel von Arrays anstelle einer einzelnen Liste zurück. Wenn die Ausgabe nur der einzelnen Liste bevorzugt wird, rufen Sie den ersten Index des Ergebnisses auf und geben Sie ihn mit print() aus.

import numpy as np

lst = [13, 4, 20, 15, 6, 20, 20]

lst = np.array(lst)

result = np.where(lst == 20)

print(result[0])

Ausgabe:

[2 5 6]

Beachten Sie, dass NumPy-Arrays durch einzelne Leerzeichen anstelle der normalen Kommas begrenzt werden.

Zusammenfassend ist die Funktion index() der einfachste Weg, die Position eines Elements in einer Python-Liste zu finden. Diese Funktion gibt jedoch nur den Index des ersten Auftretens des angegebenen Werts zurück.

Um mehrere Indizes zurückzugeben, wenn mehrere Instanzen des Werts vorhanden sind, können Sie die Funktion where() im Modul NumPy verwenden.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Verwandter Artikel - Python List