Python Listenindex() mit Beispiel

⚡ Intelligente Zusammenfassung

Python Die Funktion `index()` gibt die erste Position eines gegebenen Elements zurück, während die Liste `list` die erste Position eines Elements zurückgibt.ping Konstrukte, List Comprehensions, enumerate(), filter(), die NumPy-Bibliothek und more_itertools.locate() erweitern diese Technik, um jeden übereinstimmenden Index in einer Liste zu sammeln, die doppelte Werte enthält.

  • 🔘 index()-Methode: Die eingebaute Funktion index() gibt die erste niedrigste Position eines Elements zurück und akzeptiert optionale Start- und Endgrenzen.
  • ☑️ Wertfehler: Die Methode index() löst einen ValueError aus, wenn das Element nicht gefunden wird. Um sichere Suchvorgänge zu gewährleisten, sollte der Aufruf in einen try-except-Block eingeschlossen werden.
  • Alle Vorkommen: Eine for-Schleife, while-Schleife oder List Comprehension erfasst jeden Index, wenn sich ein Wert innerhalb der Liste wiederholt.
  • 🧪 Eingebaute Helfer: enumerate() und filter() verknüpfen einen Index mit jedem Element und bieten so prägnante Einzeiler-Methoden, um übereinstimmende Positionen zu ermitteln.
  • NumPy und more_itertools: np.where() und more_itertools.locate() geben alle übereinstimmenden Indizes effizient für große Datensätze zurück.
  • 🤖 KI-Workflows: Machine-Learning-Pipelines ermitteln Labelpositionen und passende Beispiele anhand des Index, bevor die Arrays einem Modell zugeführt werden.

Python Listenindex()

Eine Liste ist ein Container, der Elemente verschiedener Datentypen (Ints, Floats, Boolean, Strings usw.) in einer geordneten Reihenfolge speichert. Es ist eine wichtige Datenstruktur, die in Python. Die Daten werden in eckige Klammern ([]) geschrieben und die Werte durch Kommas (,) getrennt.

Die Elemente in der Liste werden mit dem ersten Element beginnend bei Index 0 indiziert. Sie können Änderungen an der erstellten Liste vornehmen, indem Sie neue Elemente hinzufügen oder vorhandene Elemente aktualisieren und löschen. Es kann auch doppelte Elemente und eine verschachtelte Liste enthalten.

Es gibt viele Methoden, die auf eine Liste angewendet werden können, und eine der wichtigsten ist die Methode index().

Python Listenindex()

Die Methode list index() hilft Ihnen, den ersten niedrigsten Index des angegebenen Elements zu finden. Wenn die Liste doppelte Elemente enthält, wird der erste Index des Elements zurückgegeben. Dies ist der einfachste und unkomplizierteste Weg, den Index zu erhalten.

Neben der eingebauten Methode `index()` für Listen können Sie auch andere Wege verwenden, um den Index zu erhalten, z. B. mit `loo`.ping durch die Liste, unter Verwendung von List Comprehensions, enumerate(), Filtermethoden.

Die Methode list index() gibt den ersten niedrigsten Index des angegebenen Elements zurück.

Syntax

list.index(element, start, end)

Kenngrößen

Kenngrößen Beschreibung
Element Das Element, dessen Index Sie erhalten möchten.
Anfang Dieser Parameter ist optional. Sie können den Startindex für die Elementsuche festlegen. Wird er nicht angegeben, ist der Standardwert 0.
Ende Dieser Parameter ist optional. Sie können den Endindex für das zu durchsuchende Element angeben. Wenn nicht angegeben, wird es bis zum Ende der Liste berücksichtigt.

Rückgabewert

Die Methode list index() gibt den Index des angegebenen Elements zurück. Wenn das Element nicht in der Liste vorhanden ist, gibt die Methode index() einen Fehler aus, zum Beispiel ValueError: „Element“ ist nicht in der Liste.

Beispiel: Um den Index des angegebenen Elements zu finden.

In der Liste my_list = ['A', 'B', 'C', 'D', 'E', 'F'] möchten wir den Index für die Elemente C und F erfahren.

Das folgende Beispiel zeigt, wie Sie den Index erhalten.

my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("The index of element C is ", my_list.index('C'))
print("The index of element F is ", my_list.index('F'))

Ausgang:

The index of element C is  2
The index of element F is  5

Beispiel: Verwendung von Start und Ende in index()

In diesem Beispiel versuchen wir, die Suche nach dem Index in einer Liste mithilfe von Start- und Endindex einzuschränken.

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('C', 1, 5))
print("The index of element F is ", my_list.index('F', 3, 7))
#using just the startindex
print("The index of element D is ", my_list.index('D', 1))

Ausgang:

The index of element C is  2
The index of element F is  5
The index of element D is  3

Beispiel: Um die index()-Methode mit einem nicht vorhandenen Element zu testen.

Wenn Sie versuchen, in der Liste nach einem nicht vorhandenen Element zu suchen, erhalten Sie eine Fehlermeldung wie unten dargestellt:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("The index of element C is ", my_list.index('Z'))

Ausgang:

Traceback (most recent call last):
File "display.py", line 3, in <module>
print("The index of element C is ", my_list.index('Z'))
ValueError: 'Z' is not in list

Verwenden einer for-Schleife, um den Index eines Elements in einer Liste abzurufen

Wir haben gesehen, dass die Methode list.index() den Index des Elements angibt, das als Argument übergeben wird.

Betrachten wir nun die Liste wie folgt: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Der Name 'Guru' ist 3 Mal im Index vorhanden, und ich möchte alle Indizes mit dem Namen 'Guru'.

Mithilfe einer for-Schleife sollten wir die verschiedenen Indizes wie im folgenden Beispiel erhalten können.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
all_indexes = [] 
for i in range(0, len(my_list)) : 
    if my_list[i] == 'Guru' : 
        all_indexes.append(i)
print("Originallist ", my_list)
print("Indexes for element Guru : ", all_indexes)

Ausgang:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Verwendung von while-Schleife und list.index()

Die Verwendung einer While-Schleife durchläuft die angegebene Liste, um alle Indizes des angegebenen Elements abzurufen.

In der Liste: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], wir benötigen alle Indizes des Elements 'Guru'.

Nachfolgend ein Beispiel, das zeigt, wie man mithilfe einer while-Schleife alle Indizes erhält.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
result = []
elementindex = -1
while True:
    try:
        elementindex = my_list.index('Guru', elementindex+1)
        result.append(elementindex)
    except  ValueError:
        break
print("OriginalList is ", my_list)
print("The index for element Guru is ", result)

Ausgang:

OriginalList is  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
The index for element Guru is  [0, 3, 6]

Verwenden des Listenverständnisses, um den Index eines Elements in einer Liste abzurufen

Um alle Indizes zu erhalten, können Sie schnell und unkompliziert das Listenverständnis der Liste nutzen.

Listenverständnisse sind Python Funktionen, die zum Erstellen neuer Sequenzen (wie Listen, Wörterbücher usw.) verwendet werden, d. h. zum Verwenden bereits erstellter Sequenzen.

Sie tragen dazu bei, längere Schleifen zu reduzieren und Ihren Code einfacher zu lesen und zu warten.

Das folgende Beispiel zeigt, wie es geht:

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']
print("Indexes for element Guru : ", all_indexes)

Ausgang:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Verwenden Sie Enumerate, um den Index eines Elements in einer Liste abzurufen

Die Funktion Enumerate() ist eine integrierte Funktion, die verfügbar ist mit PythonMit der Funktion `enumerate` können Sie alle Indizes eines Elements in einer Liste ermitteln. Die Funktion erwartet als Eingabe ein iterierbares Objekt (d. h. ein Objekt, das durchlaufen werden kann) und gibt ein Objekt mit einem Zähler für jedes Element zurück.

Das folgende Beispiel zeigt, wie man mit enumerate alle Indizes eines bestimmten Elements in einer Liste erhält.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])

Ausgang:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Verwenden eines Filters, um den Index eines Elements in einer Liste abzurufen

Die Methode filter() filtert die angegebene Liste basierend auf der angegebenen Funktion. Jedes Element der Liste wird an die Funktion übergeben und die erforderlichen Elemente werden basierend auf der in der Funktion angegebenen Bedingung gefiltert.

Lassen Sie uns die Methode filter() verwenden, um die Indizes für das angegebene Element in der Liste abzurufen.

Das folgende Beispiel zeigt, wie man einen Filter auf eine Liste anwendet.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist ", my_list)
all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) 
print("Indexes for element Guru : ", all_indexes)

Ausgang:

Originallist  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru :  [0, 3, 6]

Verwenden von NumPy, um den Index eines Elements in einer Liste abzurufen

Die NumPy-Bibliothek wird speziell für Arrays verwendet. Daher nutzen wir hier NumPy, um den Index des benötigten Elements aus der gegebenen Liste zu ermitteln.

Um NumPy nutzen zu können, müssen wir es installieren und importieren.

Hier sind die Schritte hierfür:

Schritt 1) Installieren Sie NumPy

pip install numpy

Schritt 2) Importieren Sie das NumPy-Modul.

import numpy as np

Schritt 3) Verwenden Sie np.array, um eine Liste in ein Array umzuwandeln.

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)

Schritt 4) Ermitteln Sie den Index des gewünschten Elements mit np.where().

item_index = np.where(np_array == 'Guru')[0]

Der endgültige Arbeitscode mit Ausgabe lautet wie folgt:

import numpy as np
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
np_array = np.array(my_list)
item_index = np.where(np_array == 'Guru')[0]
print("Originallist ", my_list)
print("Indexes for element Guru :", item_index)

Ausgang:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0 3 6]

Mit more_itertools.locate() den Index eines Elements in einer Liste ermitteln

Die Methode `more_itertools.locate()` hilft dabei, die Indizes der Elemente in der Liste zu finden. Dieses Modul funktioniert mit Python Version 3.5+. Das Paket more_itertools muss zuerst installiert werden, um es nutzen zu können.

Im Folgenden sind die Schritte zur Installation und Verwendung von more_itertools aufgeführt:

Schritt 1) Installieren Sie more_itertools mit pip (Python Paketmanager). Der Befehl lautet:

pip install more_itertools

Schritt 2) Sobald die Installation abgeschlossen ist, importieren Sie die lokalisieren Modul wie unten gezeigt.

from more_itertools import locate

Jetzt können Sie das Modul „locate“ in einer Liste verwenden, wie im folgenden Beispiel gezeigt:

from more_itertools import locate
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] 
print("Originallist : ", my_list)
print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))

Ausgang:

Originallist :  ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
Indexes for element Guru : [0, 3, 6]

Häufig gestellte Fragen

Die Methode `index()` löst einen `ValueError` aus, wenn das Element fehlt. Um zu verhindern, dass Ihr Programm abstürzt, sollten Sie den Aufruf in einen `try-except`-Block einschließen oder vorher mit dem `in`-Operator prüfen, ob ein fehlender Wert vorhanden ist.

Der von `index()` zurückgegebene Wert ist immer eine nicht-negative Position, gezählt vom Anfang. Sie können negative Start- oder Endargumente übergeben, um den Suchbereich einzugrenzen, aber `index()` selbst gibt niemals einen negativen Index für ein gefundenes Element zurück.

Ja. index() vergleicht Elemente exakt, also 'Guru' und 'guru' werden als unterschiedliche Werte behandelt. Die Suche nach der falschen Groß-/Kleinschreibung führt zu einem ValueError. Normalisieren Sie Zeichenketten mit lower(), bevor Sie suchen, wenn Sie eine Suche ohne Berücksichtigung der Groß-/Kleinschreibung benötigen.

Verwenden Sie den in-Operator, zum Beispiel if 'Guru' in my_list. Es gibt True oder False zurück, ohne einen Fehler auszulösen, sodass Sie index() nur dann sicher aufrufen können, wenn das Element tatsächlich in der Liste vorhanden ist.

Für eine einzelne Suche ist die eingebaute Funktion `index()` bereits effizient, da sie beim ersten Treffer stoppt. Um viele Werte wiederholt zu finden, erstellen Sie eine Wörterbuchabbildung.ping jedem Wert wird sein Index zugeordnet, wodurch jede Suche zu einer schnellen Operation mit konstanter Laufzeit wird.

Python Listen bieten zwar eine `index()`-Methode, aber keine `find()`-Methode. `index()` löst einen `ValueError` aus, wenn das gesuchte Element fehlt, während `find()` den Wert -1 zurückgibt. Um bei Listen den Fehler abzufangen oder die Zugehörigkeit zu prüfen, verwenden Sie stattdessen den `in`-Operator.

Die Ermittlung des Index eines Elements hilft dabei, Kategorienbezeichnungen numerischen Positionen zuzuordnen, die Position einer vorhergesagten Klasse zu finden oder Merkmalsspalten vor dem Training auszurichten. NumPy erweitert dies mit `np.where()` für schnelle Indexzugriffe in großen Arrays und Datensätzen.

Ja. GitHub Copilot und agentenbasierte KI-Assistenten generieren index()-, enumerate()- und comprehensionbasierte Suchvorgänge aus einem einfachen Kommentar, schlagen eine sichere Fehlerbehandlung für fehlende Werte vor und refaktorisieren Schleifen. Dennoch sollten Sie Grenzfälle testen und die zurückgegebenen Positionen überprüfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: