In diesem Handbuch erfahren Sie, wie Sie den Index eines Elements in einer Python-Liste finden, sowohl mit einfachen Iterationen als auch mit einer integrierten Listenmethode Index().
Wenn Sie mit Python-Listen arbeiten, müssen Sie möglicherweise den Index herausfinden, an dem ein bestimmtes Element vorkommt. Sie können dies tun, indem Sie:
- Durchlaufen der Liste und Prüfen, ob das Element am aktuellen Index gleich dem bestimmten Wert ist
- Verwenden der integrierten Listenmethode
index()
Sie lernen beides in diesem Tutorial. Fangen wir an.👩🏽💻
Python-Listen, überarbeitet
In Python ist eine Liste eine Sammlung von Elementen – mit denselben oder unterschiedlichen Datentypen. Sie sind veränderlich; Sie können sie direkt ändern, ohne eine neue Liste erstellen zu müssen.
Betrachten Sie dieses Beispiel fruits
: eine Liste von 5 verschiedenen Früchten.
fruits = ["apple","mango","strawberry","pomegranate","melon"]
Sie können die Länge eines beliebigen Python-Objekts abrufen, indem Sie die integrierte len()
Funktion. Sie können also anrufen len()
Funktion mit dem Listenobjekt (fruits
) als Argument zum Abrufen der Länge, wie unten gezeigt.
len(fruits)
# Output: 5
Wir werden das benutzen fruits
list als laufendes Beispiel in diesem Tutorial.
Indizierung in Python-Listen
Python folgt Null-Indizierung. In jedem Python-Iterable befindet sich also das erste Element bei Index 0, das zweite Element bei Index 1 und so weiter. Wenn die Länge des Iterables ist k
, dann befindet sich das letzte Element im Index k - 1
.
In Python können Sie die Funktion range() verwenden, um Indizes zu erhalten, während Sie iterables durchlaufen.
Hinweis: Wenn Sie durchschleifen
range(k)
, erhalten Sie die Indizes 0,1,2,…,(k-1). Also per Einstellungk = len(list)
, erhalten Sie die Liste aller gültigen Indizes.
Die folgende Codezelle erklärt dies.
for i in range(len(fruits)):
print(f"i:{i}, fruit[{i}] is {fruits[i]}")
# Output
i:0, fruit[0] is apple
i:1, fruit[1] is mango
i:2, fruit[2] is strawberry
i:3, fruit[3] is pomegranate
i:4, fruit[4] is melon
Nun, da wir die Grundlagen von abgedeckt haben Python-Listen Lassen Sie uns lernen, wie man den Index eines Elements in einer Liste findet.

Find Index of a List Item by Iteration Using for Loops
Betrachten wir die Liste fruits
aus dem vorherigen Abschnitt. Wir werden lernen, wie man den Index eines bestimmten Elements in dieser Liste durch Iteration mit findet for
Schleife.
Verwendung von for Loop und range() Funktion
Lassen Sie uns reparieren target
: der gesuchte Wert in der Liste.
Sie können verwenden for
Schleife und range()
Funktion, um die Liste der Indizes abzurufen 0
zu len(fruits) - 1
.
- Durchlaufen Sie die Liste der Früchte, die auf jeden Index zugreifen.
- Überprüfen Sie, ob das Element am aktuellen Index i gleich dem Ziel ist.
- If
True
, drucken Sie das austarget
wurde im Index gefundeni
.
fruits = ["apple","mango","strawberry","pomegranate","melon"]
target = "mango"
for i in range(len(fruits)):
if fruits[i] == target:
print(f"{target} found at index {i}")
# Output
mango found at index 1
In diesem Beispiel die Zielzeichenfolge 'mango'
kommt genau einmal (bei Index 1) in der Liste vor fruits
.
Manchmal erscheint der Zielwert jedoch mehr als einmal oder gar nicht. Um diese Fälle zu handhaben, ändern wir die obige Schleife und packen den Inhalt in eine aufgerufene Funktion find_in_list
.
Verständnis der Funktionsdefinition
Die Funktion find_in_list
hat zwei Parameter:
target
: der Wert, nach dem Sie suchen, undpy_list
: die Python-Liste, die Sie durchsuchen.
def find_in_list(target,py_list):
target_indices = []
for i in range(len(fruits)):
if fruits[i] == target:
target_indices.append(i)
if target_indices == []:
print("Sorry, target not found!")
else:
print(f"{target} is found at indices {target_indices}")
Im Funktionsrumpf initialisieren wir eine leere Liste target_indices
. Wir durchlaufen die Liste und greifen auf die Listenelemente zu. Wenn das Ziel an einem bestimmten Index gefunden wurde, fügen wir diesen Index dem hinzu target_indices
Liste mit der append()
Methode.
Hinweis: In Python,
list.append(item)
fügtitem
bis zum Ende vonlist
.
- Wenn das Ziel nie gefunden wird, dann
target_indices
ist eine leere Liste; der Benutzer wird benachrichtigt, dass das Ziel nicht in der Liste vorhanden ist. - Wenn das Ziel an mehr als einem Index gefunden wird, dann
target_indices
enthält all diese Indizes.
Als nächstes definieren wir neu fruits
Liste wie abgebildet.
Diesmal suchen wir die target
Schnur 'mango'
, die zweimal vorkommt – bei den Indizes 1 und 4.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
find_in_list(target,fruits)
# Output
mango is found at indices [1, 4]
Beim Aufruf der Funktion find_in_list
mit target
und fruits
Als Argumente sehen wir, dass beide Indizes zurückgegeben werden.
target = "turnip"
find_in_list(target,fruits)
# Output
Sorry, target not found!
Wenn Sie versuchen, nach zu suchen 'turnip'
was in der nicht vorhanden ist fruits
list erhalten Sie eine Meldung, dass das Ziel nicht gefunden wurde.
Verwendung von for Loop und enumerate() Funktion
In Python können Sie die enumerate()
Funktion, um gleichzeitig auf den Index und die Elemente zuzugreifen, ohne die verwenden zu müssen range()
Funktion.
Die folgende Codezelle zeigt, wie Sie die verwenden können enumerate()
-Funktion, um sowohl die Indizes als auch die Elemente zu erhalten.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
for index,fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
# Output
Index 0: apple
Index 1: mango
Index 2: strawberry
Index 3: pomegranate
Index 4: mango
Index 5: melon
Lassen Sie uns nun die Python-Funktion neu schreiben, um den Index der Elemente in der Liste mit zu finden enumerate()
Funktion.
def find_in_list(target,py_list):
target_indices = []
for index, fruit in enumerate(fruits):
if fruit == target:
target_indices.append(index)
if target_indices == []:
print("Sorry, target not found!")
else:
print(f"{target} is found at indices {target_indices}")
Wie im vorherigen Abschnitt können Sie jetzt die aufrufen find_in_list
Funktion mit gültigen Argumenten.
Sie können die obige Funktionsdefinition in ein äquivalentes Listenverständnis übersetzen, und wir werden das im nächsten Abschnitt tun.
Find Index of a List Item by Iteration Using List Comprehension
Listenverständnisse in Python ermöglichen Ihnen das Erstellen von Listen aus bestehenden Listen basierend auf einer bestimmten Bedingung. Hier ist das allgemeine Konstrukt:
new_list = [<output> for <items in existing iterables> if <condition is true>]
Die folgende Abbildung beschreibt, wie die Elemente des Listenverständnisses identifiziert werden; Damit können Sie die Funktion umwandeln find_in_list
zu einem Listenverständnis.

Unter Verwendung des Obigen lautet der Ausdruck für das Listenverständnis zum Erstellen von Zielindizes wie folgt.
target_indices = [index for index,fruit in enumerate(fruits) if fruit==target]
Als Übung können Sie versuchen, das obige Code-Snippet für einige andere Beispiele auszuführen.
Find Index of a List Item Using the index() Method
Um den Index eines Elements in einer Python-Liste zu finden, können Sie auch die integrierte .index()
Methode. Hier ist die allgemeine Syntax:
list.index(value,start,end)
Analysieren der obigen Methode:
value
ist der Zielwert, nach dem Sie suchen.start
undend
sind optional Positionsargumente; Sie können sie verwenden, um den Index eines Elements im Listensegment zu suchen, beginnend beistart
und erstreckt sich bis zuend - 1
.
Hinweis: Das .Index() Methode gibt zurück einzige der Index der erstes Auftreten of
value
inlist
. Auch wenn Sie den Index eines Elements in einem Listensegment finden [Start: Ende-1], gibt diese Methode nur den Index zurück, der dem ersten Vorkommen des Elements entspricht.
Sehen wir uns unser Beispiel noch einmal an, um zu verstehen, wie die .index()
Methode funktioniert.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
fruits.index(target)
1
Obwohl es zwei Vorkommen von gibt 'mango'
der fruits
Liste, Sie können sehen, dass nur der Index der zuerst Vorkommen wurde zurückgegeben.
Um den Index des zweiten Vorkommens von mango zu erhalten, können wir den Listenabschnitt von Index 2 bis Index 5 durchsuchen, wie unten gezeigt.
fruits.index(target,2,5)
4
Umgang mit ValueErrors in Python
Sehen wir uns nun an, was passiert, wenn Sie versuchen, den Index eines Elements zu finden, das nicht in der Liste vorhanden ist, sagen wir: 'carrot'
.
target = "carrot"
fruits.index(target)
# Output
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-81bd454e44f7> in <module>()
1 target = "carrot"
2
----> 3 fruits.index(target)
ValueError: 'carrot' is not in list
Wie in der obigen Codezelle zu sehen ist, löst dies a aus WertFehler. In Python können Sie dies als Ausnahme behandeln, indem Sie die verwenden try
und except
Blöcke
Die zu verwendende allgemeine Syntax try-except
ist wie folgt.
try:
# to do this
except <ErrorType>:
# do this to handle <ErrorType> as exception
Mit den obigen Try-Außer-Blöcken können wir damit umgehen WertFehler als eine Ausnahme.
target = "carrot"
try:
fruits.index(target)
except ValueError:
print(f"Sorry, could not find {target} in list")
# Output
Sorry, could not find carrot in list
Der obige Code macht folgendes:
- Wenn das Ziel in der Liste vorhanden ist, wird der Index des Ziels zurückgegeben.
- Wenn das Ziel nicht vorhanden ist, wird es verarbeitet WertFehler als Ausnahme und druckt die Fehlermeldung aus.
Summieren
Hier ist eine Zusammenfassung der verschiedenen Methoden, die Sie gelernt haben, um den Index eines Elements in einer Python-Liste zu finden.
- Sie können Pythons verwenden aufgrund Schleife und Reichweite() -Funktion, um die Elemente und ihre jeweiligen Indizes abzurufen. Überprüfen Sie, ob die Elemente an den Indizes mit dem Ziel übereinstimmen.
- Sie können auch die Tasten aufzählen() Funktion, um gleichzeitig auf das Element und den Index zuzugreifen.
- Sie können beide oben genannten Methoden innerhalb eines Listenverständnisausdrucks verwenden.
- Um den Index eines Elements in einer Liste zu finden, können Sie auch die integrierte .Index() Methode.
- list.index(Wert) gibt den Index des ersten Vorkommens von zurück Wert in Liste. Wenn der Wert nicht vorhanden ist, wird a ausgelöst WertFehler.
- Mit können Sie einen bestimmten Teil der Liste durchsuchen list.index(Wert, Start, Ende) um nach dem Vorkommen eines Werts im Listensegment zu suchen [Start:Ende-1].
Als nächstes lernen Sortieren Sie ein Python-Wörterbuch nach Schlüssel oder nach Wert. Glücklich Python-Programmierung!