Python list.index() : Comment Trouver les Positions d'Éléments avec Exemples Pratiques
Les listes Python sont des collections ordonnées qui peuvent contenir des éléments de tout type — entiers, chaînes, booléens, listes imbriquées, et plus. La méthode intégrée list.index() est le moyen le plus rapide de localiser la position d'un élément dans cette séquence. Vous trouverez ci-dessous un guide étape par étape, complet avec extraits de code et techniques alternatives pour récupérer les indices, même quand un élément apparaît plusieurs fois.
Comprendre list.index()
La méthode list.index() retourne l'index le plus bas où une valeur spécifiée apparaît. Si la valeur n'est pas présente, elle lève une ValueError. Pour référence, voir la documentation Python officielle.
Syntaxe
list.index(element, start=0, end=len(list))
Paramètres
| Paramètre | Description |
|---|---|
element | La valeur que vous voulez localiser. |
start | Optionnel. Commencer la recherche à cet index. Défaut 0. |
end | Optionnel. Arrêter la recherche avant cet index. Défaut longueur de la liste. |
Valeur de Retour
Retourne l'index entier du premier élément correspondant. Lève ValueError si l'élément est absent.
Exemple : Utilisation de Base
my_list = ['A', 'B', 'C', 'D', 'E', 'F']
print("Index de 'C' :", my_list.index('C')) # 2
print("Index de 'F' :", my_list.index('F')) # 5
Exemple : Utilisation de start et end
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print("Index de 'C' entre 1 et 5 :", my_list.index('C', 1, 5)) # 2
print("Index de 'F' entre 3 et 7 :", my_list.index('F', 3, 7)) # 5
print("Index de 'D' à partir de 1 :", my_list.index('D', 1)) # 3
Exemple : Élément Non Trouvé
my_list = ['A', 'B', 'C', 'D']
try:
my_list.index('Z')
except ValueError as e:
print(e) # 'Z' is not in list
Récupérer Tous les Indices pour un Élément Répété
Quand une valeur apparaît plusieurs fois, list.index() ne retourne que la première position. Voici plusieurs approches pour capturer chaque index.
Utilisation d'une Boucle For
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
indices = []
for i, val in enumerate(my_list):
if val == 'Guru':
indices.append(i)
print(indices) # [0, 3, 6]
Utilisation d'une Boucle While avec index()
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']
indices = []
next_index = -1
while True:
try:
next_index = my_list.index('Guru', next_index + 1)
indices.append(next_index)
except ValueError:
break
print(indices) # [0, 3, 6]
Compréhension de Liste
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Utilisation d'enumerate()
indices = [i for i, val in enumerate(my_list) if val == 'Guru'] print(indices) # [0, 3, 6]
Utilisation de filter()
indices = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print(indices) # [0, 3, 6]
Techniques Avancées
NumPy pour Grands Jeux de Données
Quand on travaille avec des données numériques ou textuelles volumineuses, convertir la liste en tableau NumPy peut accélérer les recherches.
pip install numpy import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] array = np.array(my_list) indices = np.where(array == 'Guru')[0] print(indices) # [0 3 6]
more_itertools.locate()
Pour une approche fonctionnelle propre, more_itertools.locate() retourne un itérateur d'indices satisfaisant un prédicat.
pip install more_itertools from more_itertools import locate indices = list(locate(my_list, lambda x: x == 'Guru')) print(indices) # [0, 3, 6]
Points Clés à Retenir
list.index()est la méthode la plus directe pour trouver la première occurrence d'une valeur.- Utilisez les paramètres
startetendpour contraindre la plage de recherche. - Quand un élément apparaît plusieurs fois, employez boucles, compréhensions,
enumerate(),filter(), ou bibliothèques externes comme NumPy ou more_itertools pour rassembler tous les indices. - Gérez toujours
ValueErrorquand la valeur recherchée pourrait ne pas exister.
Python
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
- Fonction Python round() expliquée avec exemples pratiques
- Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
- Python timeit() : mesurer le temps d'exécution avec exemples pratiques
- Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques
- Python list.count() : Guide Expert avec Exemples Pratiques
- Comment Supprimer les Éléments Dupliqués d'une Liste Python
- Comment Supprimer des Éléments d'une Liste Python : remove(), pop(), clear() et del