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 -1null 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 :

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *