Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

So finden Sie den Index eines Elements in Python-Listen

Python-Listenindex
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 Einstellung k = 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.

Python-Find-in-Liste

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 aus target wurde im Index gefunden i.
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, und
  • py_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ügt item bis zum Ende von list.

  • 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.

Python-Find-in-Liste

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 und end sind optional Positionsargumente; Sie können sie verwenden, um den Index eines Elements im Listensegment zu suchen, beginnend bei start und erstreckt sich bis zu end - 1.

Hinweis: Das .Index() Methode gibt zurück einzige der Index der erstes Auftreten of value in list. 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!

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder