Introduction
Les listes sont utiles de différentes manières par rapport à d’autres types de données en raison de leur polyvalence. Dans cet article, nous allons examiner l’une des opérations les plus courantes avec les listes – trouver l’indice d’un élément.
Nous allons examiner différents scénarios de recherche d’un élément, c’est-à-dire trouver la première, la dernière et toutes les occurrences d’un élément. Ainsi que ce qui se passe lorsque l’élément que nous recherchons n’existe pas.
Utilisation de la fonction index()
Le paramètre element
représente naturellement l’élément que nous recherchons. Les paramètres start
et end
sont facultatifs et représentent la plage d’indices dans laquelle nous recherchons le element
.
La valeur par défaut de start
est 0
(recherche depuis le début), et la valeur par défaut de end
est le nombre d’éléments de la liste (recherche jusqu’à la fin de la liste).
La fonction renvoie la première position du element
dans la liste qu’elle a pu trouver, quel que soit le nombre d’éléments égaux après la première occurrence.
Retrouver la première occurrence d’un élément
En utilisant la fonction index()
sans définir aucune valeur pour start
et end
nous donnera la première occurrence de la element
que nous recherchons :
my_list = first_occurrence = my_list.index('b')print("First occurrence of 'b' in the list: ", first_occurrence)
Ce qui nous donnerait le résultat attendu :
First occurrence of 'b' in the list: 1
Trouver toutes les occurrences d’un élément
Pour trouver toutes les occurrences d’un élément, nous pouvons utiliser le paramètre facultatif start
afin de ne rechercher que dans certains segments de la liste.
Par exemple, disons que nous aurions la première occurrence d’un élément à l’indice 3
. Pour trouver le suivant, nous devrions poursuivre notre recherche de la première apparition de cet élément après l’indice 3
. Nous répéterions ce processus, en changeant l’endroit où commence notre recherche, tant que nous trouverions de nouvelles occurrences de l’élément :
L’exécution de ce code nous donnerait :
The element was found at:
Nous avons dû utiliser un bloc try
ici, car la fonction index()
jette une erreur lorsqu’elle ne trouve pas le element
spécifié dans la plage donnée. Cela peut être inhabituel pour les développeurs plus habitués à d’autres langages puisque les fonctions de ce type renvoient généralement -1
null
lorsque l’élément est introuvable.
Cependant, en Python, nous devons faire attention et utiliser un bloc try
lorsque nous utilisons cette fonction.
Une autre façon plus soignée de faire la même chose serait d’utiliser la compréhension de liste et d’ignorer complètement la fonction index()
:
Ce qui nous donnerait le même résultat que précédemment. Cette approche a l’avantage supplémentaire de ne pas utiliser le bloc try
.
Trouver la dernière occurrence d’un élément
Si vous devez trouver la dernière occurrence d’un élément dans la liste, il existe deux approches que vous pouvez utiliser avec la fonction index()
:
- Inverser la liste et rechercher la première occurrence dans la liste inversée
- Passer en revue toutes les occurrences de l’élément, et ne garder trace que de la dernière occurrence
En ce qui concerne la première approche, si nous connaissions la première occurrence du element
dans une liste inversée, nous pourrions trouver la position de la dernière occurrence dans la liste originale. Plus précisément, nous pouvons le faire en soustrayant reversed_list_index - 1
de la longueur de la liste originale :
Ce qui nous donnerait le résultat souhaité :
6
Pour ce qui est de la deuxième approche, nous pourrions modifier le code que nous avons utilisé pour trouver toutes les occurrences et ne garder trace que de la dernière occurrence trouvée :
ce qui nous donnerait le même résultat :
.