Python Listenindex() mit Beispiel

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 in einer Liste verfügbar sind, und die wichtigste davon ist 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 integrierten Listenmethode index() können Sie auch andere Methoden verwenden, um den Index abzurufen, z. B. das Durchlaufen der Liste, die Verwendung von Listenverständnissen, enumerate() und Filtermethoden.

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

Syntax

list.index(element, start, end)

Parameter

Parameter Beschreibung
Element Das Element, dessen Index Sie erhalten möchten.
Anfang Dieser Parameter ist optional. Sie können den Startindex definieren, um nach dem Element zu suchen. Wenn 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 wissen.

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 wird versucht, die Indexsuche 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: So testen Sie die Methode index() mit einem Element, das nicht vorhanden ist.

Wenn Sie versuchen, in der Liste nach einem Index für ein nicht vorhandenes Element zu suchen, erhalten Sie die folgende Fehlermeldung:

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 Sie nun die Liste als: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Der Name „Guru“ kommt dreimal im Index vor, und ich möchte alle Indizes mit dem Namen „Guru“ haben.

Mit der For-Schleife sollten wir in der Lage sein, die mehreren Indizes abzurufen, wie im folgenden Beispiel gezeigt.

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'] benötigen wir alle Indizes des Elements 'Guru'.

Unten finden Sie ein Beispiel, das zeigt, wie alle Indizes mithilfe einer While-Schleife abgerufen werden

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 Enumerate()-Funktion ist eine integrierte Funktion, die in Python verfügbar ist. Sie können enumerate verwenden, um alle Indizes des Elements in einer Liste abzurufen. Die Eingabe erfolgt als iterierbares Objekt (dh ein Objekt, das in einer Schleife durchlaufen werden kann) und die Ausgabe ist ein Objekt mit einem Zähler für jedes Element.

Das folgende Beispiel zeigt, wie Sie die Aufzählung einer Liste nutzen, um alle Indizes für ein bestimmtes Element abzurufen.

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. Hier wird also NumPy verwendet, um den Index des benötigten Elements aus der angegebenen Liste abzurufen.

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

Hier sind die Schritte dafü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 zu konvertieren

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

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

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]

Verwenden von more_itertools.locate(), um den Index eines Elements in einer Liste abzurufen

Die Funktion „more_itertools.locate()“ hilft dabei, die Indizes des Elements 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 finden Sie die Schritte zur Installation und Nutzung von more_itertools

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]

Zusammenfassung

  • Die Methode list index() hilft Ihnen, den Index des angegebenen Elements zu finden. Dies ist der einfachste und unkomplizierteste Weg, den Index zu erhalten.
  • 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.
  • Neben der integrierten Listenmethode können Sie auch andere Methoden zum Abrufen des Index verwenden, z. B. das Durchlaufen der Liste, die Verwendung von Listenverständnissen, die Verwendung von enumerate(), die Verwendung eines Filters usw.
  • Verwenden Sie eine for-Schleife und eine while-Schleife, um die mehreren Indizes eines bestimmten Elements 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 verwendet werden.
  • Sie tragen dazu bei, längere Schleifen zu reduzieren und Ihren Code einfacher zu lesen und zu warten.
  • Sie können enumerate verwenden, um alle Indizes des Elements in einer Liste abzurufen.
  • Die Enumerate()-Funktion ist eine integrierte Funktion, die in Python verfügbar ist. Die Eingabe erfolgt als iterierbares Objekt (dh ein Objekt, das in einer Schleife durchlaufen werden kann) und die Ausgabe ist ein Objekt mit einem Zähler für jedes Element.
  • Die Methode filter() filtert die angegebene Liste basierend auf der angegebenen Funktion.
  • Die Numpy-Bibliothek wird speziell für Arrays verwendet. Sie können NumPy verwenden, um den Index des in der Liste angegebenen Elements abzurufen.
  • Die more_itertools.locate() ist eine weitere Python-Bibliothek, die dabei hilft, die Indizes der angegebenen Liste zu finden.