Habituellement, nous devons trouver l’index dans lequel se trouve la valeur particulière. Il existe de nombreuses méthodes pour y parvenir, en utilisant index(), etc. Mais il faut parfois trouver tous les indices d'une valeur particulière au cas où elle aurait plusieurs occurrences dans la liste. Discutons de certaines manières de trouver des indices de valeur dans la liste donnée de Python .
Façons de trouver des indices de valeur dans la liste
Vous trouverez ci-dessous les méthodes que nous aborderons dans cet article :
- Utiliser la méthode naïve
- En utilisant Compréhension de la liste
- En utilisant Fonction Enumerate()
- En utilisant Fonction filtre()
- En utilisant Bibliothèque Numpy
- Utilisant un pour la boucle
- En utilisant Méthode list.index() avec un while Boucle
Trouver l'index d'un élément à l'aide de la méthode naïve
Nous pouvons réaliser cette tâche en parcourant la liste et en vérifiant cette valeur et en ajoutant simplement l'index de valeur dans une nouvelle liste et en l'imprimant. Il s’agit de la méthode de base par force brute pour réaliser cette tâche.
Python3
# initializing list> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list : '> +> str> (test_list))> # using naive method to find indices for 3> res_list> => []> for> i> in> range> (> 0> ,> len> (test_list)):> > if> test_list[i]> => => 3> :> > res_list.append(i)> # printing resultant list> print> (> 'New indices list : '> +> str> (res_list))> |
>
>Sortir
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complexité temporelle : Sur)
Espace auxiliaire : Sur)
tableau de chaînes en programmation C
Rechercher l'index d'un élément à l'aide de la compréhension de liste
Compréhension de la liste n'est que la technique abrégée pour réaliser la tâche de force brute, utilise simplement des lignes de codes moindres pour réaliser la tâche et fait ainsi gagner du temps aux programmeurs.
Python3
# initializing list> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list : '> +> str> (test_list))> # using list comprehension> # to find indices for 3> res_list> => [i> for> i> in> range> (> len> (test_list))> if> test_list[i]> => => 3> ]> # printing resultant list> print> (> 'New indices list : '> +> str> (res_list))> |
>
>Sortir
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complexité temporelle : Sur)
Espace auxiliaire : Sur)
Rechercher l'index d'un élément à l'aide d'Enumerate() F onction
En utilisant énumérer() nous pouvons réaliser une tâche similaire, il s'agit d'une technique légèrement plus rapide que ci-dessus et il est donc recommandé de l'utiliser par rapport à la technique de compréhension de liste.
Python3
# initializing list> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list : '> +> str> (test_list))> # using enumerate()> # to find indices for 3> res_list> => [i> for> i, value> in> enumerate> (test_list)> if> value> => => 3> ]> # printing resultant list> print> (> 'New indices list : '> +> str> (res_list))> |
>
>Sortir
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complexité temporelle : Sur)
Espace auxiliaire : Sur)
Rechercher l'index d'un élément à l'aide de filter() F onction
C'est encore une autre méthode qui peut être utilisée pour accomplir cette tâche particulière, filtre() est généralement capable d'effectuer les tâches de filtrage et peut donc également être utilisé dans cette situation pour accomplir cette tâche.
Python3
# initializing list> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list : '> +> str> (test_list))> # using filter() to find indices for 3> res_list> => list> (> filter> (> lambda> x: test_list[x]> => => 3> ,> range> (> len> (test_list))))> # printing resultant list> print> (> 'New indices list : '> +> str> (res_list))> |
>
>Sortir
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complexité temporelle : Sur)
Espace auxiliaire : Sur)
Rechercher l'index d'un élément à l'aide de la bibliothèque numpy
Ce programme utilise le bibliothèque numpy pour convertir une liste donnée en tableau, trouve les indices de la valeur donnée dans le tableau et convertit le résultat tableau numpy retour à une liste. Enfin, il imprime la liste des indices.
Python3
pointeur en c
import> numpy as np> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # convert the list to a numpy array> test_array> => np.array(test_list)> # find the indices of the value 3 in the array> res_array> => np.where(test_array> => => 3> )[> 0> ]> # convert the numpy array back to a list> res_list> => list> (res_array)> # printing resultant list> print> (> 'New indices list : '> +> str> (res_list))> |
>
>
SORTIR:
New indices list : [1, 3]>
Complexité temporelle : O(n), où n est la longueur de la liste d'entrée.
Espace auxiliaire : O(n), car il crée un nouveau tableau numpy de la même longueur que la liste d'entrée.
Rechercher l'index d'un élément à l'aide d'une boucle for
Initialisez une liste vide appelée res_list pour stocker les indices des valeurs cibles. Parcourez chaque élément de la liste d'entrée test_list à l'aide d'une boucle for. Si l'élément actuel correspond à la valeur cible, ajoutez son index à res_list. Une fois la boucle terminée , renvoie la res_list comme sortie.
Python3
# initializing list> test_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list: '> +> str> (test_list))> # using a for loop to find indices for 3> res_list> => []> for> i> in> range> (> len> (test_list)):> > if> test_list[i]> => => 3> :> > res_list.append(i)> # printing resultant list> print> (> 'New indices list: '> +> str> (res_list))> |
>
>Sortir
Original list: [1, 3, 4, 3, 6, 7] New indices list: [1, 3]>
Complexité temporelle : O(n) , où n est la longueur de la liste d'entrée test_list.
Espace auxiliaire : O(k) , où k est le nombre d'occurrences de la valeur cible.
Rechercher l'index d'un élément à l'aide de la méthode list.index() avec une boucle while
Initialisez une liste vide d'index pour stocker les indices de la valeur donnée. Initialisez une variable i à -1. Exécutez une boucle while qui continue jusqu'à ce que l'instruction break soit rencontrée. À l'intérieur de la boucle while, utilisez le liste.index() méthode pour trouver l'index de la valeur donnée dans la liste à partir de l'index i + 1. Si l'index est trouvé, ajoutez-le à la liste des index et mettez à jour la valeur de i avec l'index trouvé. Si l'index n'est pas trouvé, interrompez la boucle while. Imprimez la liste des index.
Python3
cycle de vie du développement logiciel
# initializing list> my_list> => [> 1> ,> 3> ,> 4> ,> 3> ,> 6> ,> 7> ]> # printing initial list> print> (> 'Original list : '> +> str> (my_list))> # using list.index() method with a while loop to find indices for 3> indexes> => []> i> => -> 1> while> True> :> > try> :> > i> => my_list.index(> 3> , i> +> 1> )> > indexes.append(i)> > except> ValueError:> > break> print> (> 'New indices list : '> +> str> (indexes))> |
>
>Sortir
Original list : [1, 3, 4, 3, 6, 7] New indices list : [1, 3]>
Complexité temporelle : O(n), La méthode list.index() a une complexité temporelle de O(n) dans le pire des cas car elle doit parcourir la liste pour trouver l'index de la valeur donnée. La boucle while a également une complexité temporelle de O(n) dans le pire des cas car il doit parcourir la liste pour trouver toutes les occurrences de la valeur donnée.
Espace auxiliaire : O(1),L'espace utilisé par la liste d'index et la variable i est constant et ne dépend pas de la taille de la liste d'entrée, donc la complexité de l'espace auxiliaire est O(1).