Finden alle Indizes eines Elements in einer Liste in Python

Manav Narula 30 Januar 2023
  1. Verwendung der for-Schleife, um die Indizes aller Vorkommen eines Elements zu finden
  2. Verwenden Sie die Funktion numpy.where(), um die Indizes aller Vorkommen eines Elements in Python zu finden
  3. Verwendung der Funktion more_itertools.locate(), um die Indizes aller Vorkommen eines Elements zu finden
Finden alle Indizes eines Elements in einer Liste in Python

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 Narula avatar Manav Narula avatar

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.

LinkedIn

Verwandter Artikel - Python List