So finden Sie den Index eines Elements in Python-Listen

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, Revisited
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 sie erstellen zu müssenate eine neue Liste.
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 zero 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.

Finden Sie den Index eines Listenelements durch Iteration mit for-Schleifen
Betrachten wir die Liste fruits
von der previous Abschnitt. Wir erfahren, wie Sie mithilfe von Iteration den Index eines bestimmten Elements in dieser Liste finden 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
.
Verstehenanding 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-Schleife und Enumerationate() Funktion
In Python können Sie die enumerate()
Funktion zum gleichzeitigen Zugriff auf den Index und die ElementeneoNormalerweise – 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 beim previous Abschnitt können Sie jetzt die aufrufen find_in_list
Funktion mit gültigen Argumenten.
Du kannst transslate Wir werden die obige Funktionsdefinition in ein äquivalentes Listenverständnis umwandeln und das werden wir im nächsten Abschnitt tun.
Finden Sie den Index eines Listenelements durch Iteration unter Verwendung des Listenverständnisses
Listenverständnisse in Python Erlaube dir zu create Listen aus vorhandenen 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 oben Gesagten wird der Ausdruck für das Listenverständnis zu create Zielindizes sind 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.
Finden Sie den Index eines Listenelements mit der Methode index()
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.
Lasst uns revSehen Sie sich unser Beispiel an, um zu verstehen, wie das funktioniert .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 Codezelle oben zu sehen ist, ist dies der Fallrows a 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 for 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ählenate() Funktion zu simultanneoGreifen Sie normalerweise auf das Element und den Index zu.
- 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!