Comment trouver l'index d'un élément dans les listes Python

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, Revvisité
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éerate 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 zero indexage. 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.

Rechercher l'index d'un élément de liste par itération à l'aide de boucles for
Considérons la liste fruits
du prevsection intéressante. Nous allons apprendre comment 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
.
Comprendreanding the Function Definition
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 le 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 l'énumérateurate() Fonction
En Python, vous pouvez utiliser le enumerate()
fonction pour accéder à la fois à l'index et aux éléments simultanémentneohabituellement, sans avoir à utiliser le 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 le prevsection ious, vous pouvez maintenant appeler le find_in_list
fonction avec des arguments valides.
Vous pouvez transslate la définition de fonction ci-dessus dans une compréhension de liste équivalente et nous le ferons dans la section suivante.
Rechercher l'index d'un élément de liste par itération à l'aide de la compréhension de liste
Lister les compréhensions en Python vous permettre de créerate 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éerate Les indices cibles sont les suivants.
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.
Rechercher l'index d'un élément de liste à l'aide de la méthode index ()
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
et leend
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: Les .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.
LET revisit 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, cerows a Erreur de valeur. En Python, vous pouvez gérer cela comme une exception en utilisant le try
et le 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 à 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érateurate() fonction à simultaneoaccédez généralement à l'élément 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!