Python Liste index() avec exemple

⚡ Résumé intelligent

Python list index() renvoie la première position d'un élément donné, tandis que looping Les constructions, les compréhensions de liste, enumerate(), filter(), la bibliothèque NumPy et more_itertools.locate() étendent cette technique pour collecter chaque index correspondant dans une liste contenant des valeurs en double.

  • (I.e. méthode index() : La fonction intégrée index() renvoie la première position la plus basse d'un élément et accepte des limites de début et de fin facultatives.
  • ☑️ ValueError : La fonction index() lève une exception ValueError lorsque l'élément est absent ; il est donc conseillé d'encapsuler l'appel dans un bloc try-except pour des recherches sécurisées.
  • ✅ Toutes les occurrences : Une boucle for, une boucle while ou une compréhension de liste collecte chaque index lorsqu'une valeur se répète dans la liste.
  • 🧪 Assistants intégrés : Les fonctions enumerate() et filter() associent un index à chaque élément, offrant ainsi des moyens concis, en une seule ligne, de rassembler les positions correspondantes.
  • ️ NumPy et more_itertools : np.where() et more_itertools.locate() renvoient efficacement tous les index correspondants pour les grands ensembles de données.
  • 🤖 Flux de travail d'IA : Les pipelines d'apprentissage automatique localisent les positions des étiquettes et les échantillons correspondants par index avant que les tableaux n'alimentent un modèle.

Python Index de liste()

Une liste est un conteneur qui stocke des éléments de différents types de données (entiers, flottants, booléens, chaînes, etc.) dans une séquence ordonnée. Il s’agit d’une structure de données importante intégrée PythonLes données sont écrites entre crochets ([]) et les valeurs sont séparées par une virgule (,).

Les éléments à l'intérieur de la liste sont indexés avec le premier élément commençant à l'index 0. Vous pouvez apporter des modifications à la liste créée en ajoutant de nouveaux éléments ou en mettant à jour, en supprimant ceux existants. Il peut également contenir des éléments en double et une liste imbriquée.

De nombreuses méthodes sont disponibles sur une liste, et l'une des plus importantes est la méthode index().

Python Index de liste()

La méthode list index() vous aide à trouver le premier index le plus bas de l’élément donné. S'il y a des éléments en double dans la liste, le premier index de l'élément est renvoyé. C'est le moyen le plus simple et le plus simple d'obtenir l'index.

Outre la méthode intégrée index() de la liste, vous pouvez également utiliser d'autres méthodes pour obtenir l'index, comme looping à travers la liste, en utilisant des compréhensions de liste, les méthodes enumerate() et filter.

La méthode list index() renvoie le premier index le plus bas de l’élément donné.

Syntaxe

list.index(element, start, end)

Paramètres

Paramètres Description
un élément L'élément dont vous souhaitez obtenir l'index.
Commencer Ce paramètre est facultatif. Vous pouvez définir l'indice de départ de la recherche de l'élément. S'il n'est pas spécifié, la valeur par défaut est 0.
fin Ce paramètre est facultatif. Vous pouvez spécifier l'index de fin de l'élément à rechercher. S'il n'est pas renseigné, il est pris en compte jusqu'à la fin de la liste.

Valeur de retour

La méthode list index() renvoie l'index de l'élément donné. Si l'élément n'est pas présent dans la liste, la méthode index() générera une erreur, par exemple, ValueError : 'Element' n'est pas dans la liste.

Exemple : Pour trouver l'index de l'élément donné.

Dans la liste my_list = ['A', 'B', 'C', 'D', 'E', 'F'], nous aimerions connaître l'index des éléments C et F.

L'exemple ci-dessous montre comment obtenir l'index.

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'))

Sortie :

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

Exemple : utilisation du début et de la fin dans index()

Dans cet exemple, nous allons essayer de limiter la recherche de l'index dans une liste en utilisant l'index de début et l'index de fin.

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))

Sortie :

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

Exemple : Tester la méthode index() avec un élément absent.

Lorsque vous tentez de rechercher dans la liste un élément absent, vous obtiendrez une erreur comme celle affichée ci-dessous :

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

Sortie :

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

Utiliser la boucle for pour obtenir l'index d'un élément dans une liste

Avec la méthode list.index(), nous avons vu qu'elle donne l'index de l'élément passé en argument.

Considérons maintenant la liste comme suit : my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Le nom 'Guru' est présent 3 fois dans l'index, et je veux tous les index portant le nom 'Guru".

En utilisant une boucle for, nous devrions pouvoir obtenir les différents index comme indiqué dans l'exemple ci-dessous.

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)

Sortie :

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

Utilisation de la boucle while et de list.index()

L'utilisation d'une boucle while parcourra la liste donnée pour obtenir tous les index de l'élément donné.

Dans la liste : ma_liste = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], nous avons besoin de tous les index de l'élément 'Guru".

Vous trouverez ci-dessous un exemple montrant comment obtenir tous les index à l'aide d'une boucle while.

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)

Sortie :

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

Utiliser la compréhension de liste pour obtenir l'index d'un élément dans une liste

Pour obtenir tous les index, un moyen simple et rapide consiste à utiliser la compréhension de liste sur la liste.

Les compréhensions de listes sont Python les fonctions utilisées pour créer de nouvelles séquences (telles que des listes, des dictionnaires, etc.), c'est-à-dire en utilisant des séquences déjà créées.

Ils contribuent à réduire les boucles plus longues et rendent votre code plus facile à lire et à maintenir.

L'exemple suivant montre comment procéder :

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)

Sortie :

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

Utiliser Enumerate pour obtenir l'index d'un élément dans une liste

La fonction Enumerate() est une fonction intégrée disponible avec PythonVous pouvez utiliser la fonction `enumerate` pour obtenir tous les indices des éléments d'une liste. Elle prend en entrée un objet itérable (c'est-à-dire un objet sur lequel on peut boucler) et renvoie un objet contenant un compteur pour chaque élément.

L'exemple suivant montre comment utiliser la fonction enumerate sur une liste pour obtenir tous les index d'un élément donné.

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'])

Sortie :

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

Utiliser un filtre pour obtenir l'index d'un élément dans une liste

La méthode filter() filtre la liste donnée en fonction de la fonction donnée. Chaque élément de la liste sera transmis à la fonction et les éléments requis seront filtrés en fonction de la condition donnée dans la fonction.

Utilisons la méthode filter() pour obtenir les index de l'élément donné dans la liste.

L'exemple suivant montre comment utiliser un filtre sur une liste.

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)

Sortie :

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

Utiliser NumPy pour obtenir l'index d'un élément dans une liste

La bibliothèque NumPy est spécialement conçue pour les tableaux. Nous allons donc l'utiliser ici pour obtenir l'indice de l'élément souhaité dans la liste donnée.

Pour utiliser NumPy, nous devons l'installer et l'importer.

Voici les étapes à suivre :

Étape 1) Installer NumPy

pip install numpy

Étape 2) Importez le module NumPy.

import numpy as np

Étape 3) Utilisez np.array pour convertir une liste en tableau.

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

Étape 4) Obtenez l'index de l'élément souhaité à l'aide de np.where().

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

Le code de travail final avec sortie est le suivant :

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)

Sortie :

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

Utiliser more_itertools.locate() pour obtenir l'index d'un élément dans une liste

La fonction more_itertools.locate() permet de trouver les index des éléments dans la liste. Ce module fonctionnera avec Python version 3.5+. Le package more_itertools doit d'abord être installé pour pouvoir l'utiliser.

Voici les étapes à suivre pour installer et utiliser more_itertools :

Étape 1) Installez more_itertools en utilisant pip (Python gestionnaire de paquets). La commande est

pip install more_itertools

Étape 2) Une fois l'installation terminée, importez le localiser module comme indiqué ci-dessous.

from more_itertools import locate

Vous pouvez maintenant utiliser le module de localisation sur une liste comme indiqué ci-dessous dans l'exemple :

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')))

Sortie :

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

FAQ

La méthode index() lève une exception ValueError lorsqu'un élément est absent. Pour éviter qu'une valeur manquante ne provoque un plantage de votre programme, placez l'appel dans un bloc try-except ou vérifiez d'abord l'appartenance de l'élément avec l'opérateur in.

La valeur renvoyée par index() est toujours une position non négative, comptée à partir du début. Vous pouvez passer des arguments de début ou de fin négatifs pour limiter la recherche, mais index() elle-même ne renvoie jamais un index négatif pour un élément trouvé.

Oui. index() compare les éléments exactement, donc 'GuruLes caractères « ' » et « guru » sont considérés comme différents. Une recherche effectuée dans une casse incorrecte génère une exception ValueError. Normalisez les chaînes de caractères avec la fonction lower() avant la recherche si vous souhaitez une correspondance insensible à la casse.

Utilisez l'opérateur in, par exemple si 'Guru' dans ma_liste. Elle renvoie True ou False sans générer d'erreur, vous pouvez donc appeler index() en toute sécurité uniquement lorsque l'élément est effectivement présent dans la liste.

Pour une recherche unique, la fonction intégrée `index()` est déjà efficace car elle s'arrête à la première occurrence. Pour rechercher plusieurs valeurs de manière répétée, il est conseillé de construire une table de hachage.ping chaque valeur associée à son index, ce qui transforme chaque recherche en une opération rapide à temps constant.

Python Les listes possèdent une méthode `index()` mais pas de méthode `find()`. `index()` lève une exception `ValueError` en cas d'absence d'un élément, tandis que `find()` renvoie -1. Pour les listes, il est recommandé de gérer l'erreur ou de vérifier l'appartenance à l'élément à l'aide de l'opérateur `in`.

La localisation de l'index d'un élément permet d'associer des étiquettes catégorielles à des positions numériques, de repérer l'emplacement d'une classe prédite ou d'aligner les colonnes de caractéristiques avant l'entraînement. NumPy étend cette fonctionnalité avec `np.where()` pour des recherches d'index rapides dans de grands tableaux et ensembles de données.

Oui. GitHub Copilot et les assistants d'IA agentic génèrent des recherches basées sur index(), enumerate() et la compréhension à partir d'un simple commentaire, suggèrent une gestion sûre des erreurs pour les valeurs manquantes et refactorisent les boucles, même s'il est toujours conseillé de tester les cas limites et de confirmer les positions renvoyées.

Résumez cet article avec :