Dans ce guide, vous apprendrez à trouver l'index d'un élément dans une liste Python, à la fois en utilisant des itérations simples et une méthode de liste intégrée. indice().
Lorsque vous travaillez avec des listes Python, vous devrez peut-être connaître l'index auquel un élément particulier se produit. Vous pouvez le faire en :
- Boucler dans la liste et vérifier si l'élément à l'index actuel est égal à la valeur particulière
- Utilisation de la méthode de liste intégrée
index()
Vous apprendrez les deux éléments ci-dessus dans ce didacticiel. Commençons.👩🏽💻
Listes Python, revisitées
En Python, une liste est une collection d'éléments, de types de données identiques ou différents. Elles sont mutable; vous pouvez les modifier sur place sans avoir à créer une nouvelle liste.
Prenons cet exemple fruits
: une liste de 5 fruits différents.
fruits = ["apple","mango","strawberry","pomegranate","melon"]
Vous pouvez obtenir la longueur de n'importe quel objet Python en utilisant la fonction intégrée len()
fonction. Vous pouvez donc appeler le len()
fonction avec l'objet liste (fruits
) comme argument pour obtenir sa longueur, comme indiqué ci-dessous.
len(fruits)
# Output: 5
Nous utiliserons le fruits
list comme exemple courant dans ce didacticiel.
Indexation dans les listes Python
Python suit zéro indexation. Ainsi, dans tout itérable Python, le premier élément est à l'index 0, le deuxième élément est à l'index 1, et ainsi de suite. Si la longueur de l'itérable est k
, alors le dernier élément est à l'index k - 1
.
En Python, vous pouvez utiliser la fonction range() pour obtenir des indices lorsque vous parcourez les itérables.
Notes: Lorsque vous effectuez une boucle
range(k)
, vous obtenez les indices 0,1,2,…,(k-1). Donc en fixantk = len(list)
, vous pouvez obtenir la liste de tous les index valides.
La cellule de code suivante explique cela.
for i in range(len(fruits)):
print(f"i:{i}, fruit[{i}] is {fruits[i]}")
# Output
i:0, fruit[0] is apple
i:1, fruit[1] is mango
i:2, fruit[2] is strawberry
i:3, fruit[3] is pomegranate
i:4, fruit[4] is melon
Maintenant que nous avons couvert les bases de listes Python apprenons à trouver l'index d'un élément dans une liste.

Find Index of a List Item by Iteration Using for Loops
Considérons la liste fruits
de la section précédente. Nous allons apprendre à trouver l'index d'un élément spécifique dans cette liste par itération en utilisant for
boucle.
Utilisation de la fonction boucle et plage()
Réparons target
: la valeur que nous recherchons dans la liste.
Vous pouvez utiliser for
boucle et range()
fonction pour obtenir la liste des indices de 0
à len(fruits) - 1
.
- Parcourez la liste des fruits accédant à chaque index.
- Vérifie si l'élément à l'index courant i est égal à la cible.
- If
True
, imprimez que letarget
a été trouvé à l'indexi
.
fruits = ["apple","mango","strawberry","pomegranate","melon"]
target = "mango"
for i in range(len(fruits)):
if fruits[i] == target:
print(f"{target} found at index {i}")
# Output
mango found at index 1
Dans cet exemple, la chaîne cible 'mango'
apparaît exactement une fois (à l'index 1) dans la liste fruits
.
Cependant, la valeur cible apparaît parfois plusieurs fois ou n'apparaît pas du tout. Pour gérer ces cas, modifions la boucle ci-dessus et enveloppons le contenu dans une fonction appelée find_in_list
.
Comprendre la définition de la fonction
La fonction find_in_list
a deux paramètres:
target
: la valeur recherchée, etpy_list
: la liste Python dans laquelle vous effectuez une recherche.
def find_in_list(target,py_list):
target_indices = []
for i in range(len(fruits)):
if fruits[i] == target:
target_indices.append(i)
if target_indices == []:
print("Sorry, target not found!")
else:
print(f"{target} is found at indices {target_indices}")
Dans le corps de la fonction, on initialise une liste vide target_indices
. Nous parcourons la liste et accédons aux éléments de la liste. Si la cible a été trouvée à un index particulier, nous ajoutons cet index au target_indices
liste à l'aide de la append()
méthode.
Notes: En Python,
list.append(item)
ajouteitem
à la fin delist
.
- Si la cible n'est jamais trouvée, alors
target_indices
est une liste vide ; l'utilisateur est averti que la cible n'est pas présente dans la liste. - Si la cible se trouve à plus d'un index, alors
target_indices
contient tous ces indices.
Ensuite, redéfinissons le fruits
liste comme indiqué.
Cette fois, nous recherchons le target
un magnifique 'mango'
, qui se produit deux fois, aux indices 1 et 4.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
find_in_list(target,fruits)
# Output
mango is found at indices [1, 4]
A l'appel de la fonction find_in_list
avec target
et fruits
comme arguments, nous voyons que les deux indices sont renvoyés.
target = "turnip"
find_in_list(target,fruits)
# Output
Sorry, target not found!
Si vous essayez de rechercher 'turnip'
qui n'est pas présent dans le fruits
liste, vous obtenez un message indiquant que la cible n'a pas été trouvée.
Utilisation de la boucle for et de la fonction enumerate()
En Python, vous pouvez utiliser le enumerate()
fonction pour accéder à la fois à l'index et aux éléments simultanément, sans avoir à utiliser la range()
la fonction.
La cellule de code suivante montre comment vous pouvez utiliser le enumerate()
fonction pour obtenir à la fois les indices et les éléments.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
for index,fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
# Output
Index 0: apple
Index 1: mango
Index 2: strawberry
Index 3: pomegranate
Index 4: mango
Index 5: melon
Maintenant, réécrivons la fonction Python pour trouver l'index des éléments dans la liste en utilisant enumerate()
la fonction.
def find_in_list(target,py_list):
target_indices = []
for index, fruit in enumerate(fruits):
if fruit == target:
target_indices.append(index)
if target_indices == []:
print("Sorry, target not found!")
else:
print(f"{target} is found at indices {target_indices}")
Comme pour la section précédente, vous pouvez maintenant appeler le find_in_list
fonction avec des arguments valides.
Vous pouvez traduire la définition de fonction ci-dessus en une compréhension de liste équivalente et nous le ferons dans la section suivante.
Find Index of a List Item by Iteration Using List Comprehension
Lister les compréhensions en Python vous permettent de créer des listes à partir de listes existantes en fonction de certaines conditions. Voici la construction générale :
new_list = [<output> for <items in existing iterables> if <condition is true>]
La figure ci-dessous décrit comment identifier les éléments de compréhension de liste ; en utilisant ceci, vous pouvez convertir la fonction find_in_list
à une compréhension de liste.

En utilisant ce qui précède, l'expression de compréhension de liste pour créer des index cibles est la suivante.
target_indices = [index for index,fruit in enumerate(fruits) if fruit==target]
Comme exercice, vous pouvez essayer d'exécuter l'extrait de code ci-dessus pour quelques autres exemples.
Find Index of a List Item Using the index() Method
Pour trouver l'index d'un élément dans une liste Python, vous pouvez également utiliser la fonction intégrée .index()
méthode. Voici la syntaxe générale :
list.index(value,start,end)
Analyse de la méthode ci-dessus :
value
est la valeur cible que vous recherchez.start
etend
sont optionnel arguments de position ; vous pouvez les utiliser pour rechercher trouver l'index d'un élément dans la tranche de liste à partir destart
et s'étendant jusqu'àend - 1
.
Notes: Le .indice() retourne la méthode uniquement. l'indice de la première occurrence of
value
inlist
. Même lorsque vous trouvez l'index d'un élément dans une tranche de liste [début : fin-1], cette méthode renvoie uniquement l'index correspondant à la première occurrence de l'élément.
Reprenons notre exemple pour comprendre comment le .index()
la méthode fonctionne.
fruits = ["apple","mango","strawberry","pomegranate","mango","melon"]
target = "mango"
fruits.index(target)
1
Même s'il y a deux occurrences de 'mango'
dans le fruits
liste, vous pouvez voir que seul l'index de la premier l'occurrence a été renvoyée.
Pour obtenir l'index de la deuxième occurrence de mango, nous pouvons effectuer une recherche dans la tranche de liste commençant à l'index 2 et s'étendant jusqu'à l'index 5, comme indiqué ci-dessous.
fruits.index(target,2,5)
4
Comment gérer les erreurs de valeur en Python
Voyons maintenant ce qui se passe si vous essayez de trouver l'index d'un élément qui n'est pas présent dans la liste, disons, 'carrot'
.
target = "carrot"
fruits.index(target)
# Output
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-17-81bd454e44f7> in <module>()
1 target = "carrot"
2
----> 3 fruits.index(target)
ValueError: 'carrot' is not in list
Comme on le voit dans la cellule de code ci-dessus, cela lance un Erreur de valeur. En Python, vous pouvez gérer cela comme une exception en utilisant le try
et except
Blocs.
La syntaxe générale à utiliser try-except
est comme suit.
try:
# to do this
except <ErrorType>:
# do this to handle <ErrorType> as exception
En utilisant les blocs try-except ci-dessus, nous pouvons gérer Erreur de valeur comme une exception.
target = "carrot"
try:
fruits.index(target)
except ValueError:
print(f"Sorry, could not find {target} in list")
# Output
Sorry, could not find carrot in list
Le code ci-dessus fait ce qui suit :
- Si la cible est présente dans la liste, elle retourne l'index de la cible.
- Si la cible n'est pas présente, elle gère Erreur de valeur comme exception et imprime le message d'erreur.
résumer
Voici un résumé des différentes méthodes que vous avez apprises pour trouver l'index d'un élément dans une liste Python.
- Vous pouvez utiliser Python marquage boucle et intervalle() fonction pour obtenir les éléments et leurs indices respectifs. Vérifiez si les éléments des indices correspondent à la cible.
- Vous pouvez également utiliser la énumérer() fonction permettant d'accéder simultanément à la rubrique et à l'index.
- Vous pouvez utiliser les deux méthodes ci-dessus dans une expression de compréhension de liste.
- Pour trouver l'index d'un élément dans une liste, vous pouvez également utiliser la fonction intégrée .indice() méthode.
- liste.index(valeur) renvoie l'indice de la première occurrence de Plus-value in liste. Si la valeur n'est pas présente, elle lève un Erreur de valeur.
- Vous pouvez rechercher dans une certaine tranche de la liste en utilisant list.index(valeur, début, fin) pour rechercher l'occurrence d'une valeur dans la tranche de liste [début : fin-1].
Ensuite, apprenez à trier un dictionnaire Python par clé ou par valeur. Heureux Programmation Python!