Trouver tous les indices d'un élément dans une liste en Python
-
Utilisation de la boucle
for
pour trouver les indices de toutes les occurrences d’un élément -
Utiliser la fonction
numpy.where()
pour trouver les indices de toutes les occurrences d’un élément en Python -
Utilisez la fonction
more_itertools.locate()
pour trouver les indices de toutes les occurrences d’un élément
Une liste est utilisée en Python pour stocker plusieurs éléments sous un seul nom. Chaque élément est accessible en fonction de sa position dans la liste. Un élément peut être présent à plusieurs endroits dans une liste.
Dans ce tutoriel, nous allons présenter comment trouver les indices de toutes les occurrences d’un élément spécifique dans une liste. Nous allons travailler avec la liste suivante et trouver tous les indices de l’élément 1
.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
Utilisation de la boucle for
pour trouver les indices de toutes les occurrences d’un élément
Nous pouvons facilement parcourir la liste et comparer chaque élément à l’élément requis et trouver ses indices. Nous pouvons stocker le résultat final dans une nouvelle liste. Dans l’exemple suivant, nous itérons sur la liste en utilisant la fonction 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)
Production :
[0, 2, 8]
Une façon plus efficace et plus compacte de mettre en œuvre le code ci-dessus est d’utiliser la compréhension de la liste ci-dessous.
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i in range(len(l1)) if l1[i] == 1]
print(pos)
Production :
[0, 2, 8]
De même, nous pouvons également utiliser la fonction enumerate()
, qui renvoie l’index et la valeur ensemble. Par exemple :
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = [i for i, x in enumerate(l1) if x == 1]
print(pos)
Production:
[0, 2, 8]
Utiliser la fonction numpy.where()
pour trouver les indices de toutes les occurrences d’un élément en Python
La bibliothèque NumPy
a la fonction where()
, qui est utilisée pour retourner les indices d’un élément dans un tableau basé sur une condition quelconque. Pour cette méthode, nous devons passer la liste sous forme de tableau. Le résultat final est également dans un tableau. L’extrait de code suivant montre comment nous pouvons utiliser cette méthode :
import numpy as np
l1 = [1, 5, 1, 8, 9, 15, 6, 2, 1]
pos = np.where(np.array(l1) == 1)[0]
print(pos)
Production :
[0 2 8]
Utilisez la fonction more_itertools.locate()
pour trouver les indices de toutes les occurrences d’un élément
Le more_itertools
est un module tiers et pratique. Il possède de nombreuses fonctions qui peuvent créer un code efficace et compact lorsqu’on travaille avec des itérables. La fonction locate()
de ce module renvoie les indices des éléments qui sont True
pour la condition. Elle renvoie un objet itertools
. L’extrait de code suivant explique comment nous pouvons utiliser cette méthode :
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)
Production :
[0, 2, 8]
Nous utilisons la fonction list()
pour nous assurer que le résultat final est sous la forme d’une liste.
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.
LinkedInArticle connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python