Finden alle Indizes eines Elements in einer Liste in Python
-
Verwendung der
for
-Schleife, um die Indizes aller Vorkommen eines Elements zu finden -
Verwenden Sie die Funktion
numpy.where()
, um die Indizes aller Vorkommen eines Elements in Python zu finden -
Verwendung der Funktion
more_itertools.locate()
, um die Indizes aller Vorkommen eines Elements zu finden
Eine Liste wird in Python verwendet, um mehrere Elemente unter einem einzigen Namen zu speichern. Auf jedes Element kann über seine Position in der Liste zugegriffen werden. Ein Element kann an mehreren Positionen in einer Liste vorhanden sein.
In diesem Tutorial werden wir vorstellen, wie man die Indizes aller Vorkommen eines bestimmten Elements in einer Liste findet. Wir werden mit der folgenden Liste arbeiten und alle Indizes des Elements 1
finden.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
Verwendung der for
-Schleife, um die Indizes aller Vorkommen eines Elements zu finden
Wir können einfach über die Liste iterieren und jedes Element mit dem gewünschten Element vergleichen und seine Indizes finden. Das Endergebnis können wir in einer neuen Liste speichern. Im folgenden Beispiel iterieren wir über die Liste mit der Funktion range()
:
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = []
x = 1 # The required element
for i in range(len(l1)):
if l1[i] == x:
pos.append(i)
print(pos)
Ausgabe:
[0, 2, 8]
Eine effizientere und kompaktere Art, den obigen Code zu implementieren, ist die Verwendung des folgenden List Comprehensions.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i in range(len(l1)) if l1[i] == 1]
print(pos)
Ausgabe:
[0, 2, 8]
Ähnlich können wir auch die Funktion enumerate()
verwenden, die den Index und den Wert zusammen zurückgibt. Ein Beispiel:
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i, x in enumerate(l1) if x == 1]
print(pos)
Ausgabe:
[0, 2, 8]
Verwenden Sie die Funktion numpy.where()
, um die Indizes aller Vorkommen eines Elements in Python zu finden
Die Bibliothek NumPy
verfügt über die Funktion where()
, die dazu dient, die Indizes eines Elements in einem Array basierend auf einer Bedingung zurückzugeben. Für diese Methode müssen wir die Liste als Array übergeben. Das Endergebnis befindet sich ebenfalls in einem Array. Der folgende Codeschnipsel zeigt, wie wir diese Methode verwenden können:
import numpy as np
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = np.where(np.array(l1) == 1)[0]
print(pos)
Ausgabe:
[0 2 8]
Verwendung der Funktion more_itertools.locate()
, um die Indizes aller Vorkommen eines Elements zu finden
Das Modul more_itertools
ist ein Drittanbieter und sehr praktisch. Es hat viele Funktionen, die effizienten und kompakten Code bei der Arbeit mit Iterables erzeugen können. Die Funktion locate()
in diesem Modul gibt die Indizes der Elemente zurück, die für die Bedingung True
sind. Sie gibt ein itertools
-Objekt zurück. Der folgende Codeschnipsel erklärt, wie wir diese Methode verwenden können:
from more_itertools import locate
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = list(locate(l1, lambda x: x == 1))
print(pos)
Ausgabe:
[0, 2, 8]
Wir verwenden die Funktion list()
, um sicherzustellen, dass das Endergebnis in Form einer Liste vorliegt.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInVerwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert