Usuellement, nous avons besoin de trouver l’indice, dans lequel la valeur particulière est située. Il existe de nombreuses méthodes pour y parvenir, en utilisant index()
etc. Mais parfois besoin de trouver tous les indices d’une valeur particulière dans le cas où il a des occurrences multiples dans la liste.
Discutons de certaines façons de trouver les indices d’une valeur dans une liste donnée.
Méthode #1 : Méthode naïve
Nous pouvons réaliser cette tâche en itérant à travers la liste et en vérifiant cette valeur et juste ajouter l’indice de la valeur dans une nouvelle liste et imprimer cela. C’est la méthode de force brute de base pour réaliser cette tâche.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
for
i
in
range
(
0
,
len
(test_list)) :
if
test_list
=
=
3
:
res_list.append(i)
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Méthode #2 : Utilisation de la compréhension de liste
La compréhension de liste est juste la technique de raccourci pour réaliser la tâche de force brute, utilise juste moins de lignes de codes pour réaliser la tâche et donc fait gagner du temps aux programmeurs.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
=
=
3
]
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Méthode #3 : Utilisation de enumerate()
Utilisation de enumerate()
nous pouvons réaliser la même tâche, cette technique est légèrement plus rapide que la précédente et il est donc recommandé de l’utiliser plutôt que la technique de compréhension de liste.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Méthode #4 : Utiliser filter()
C’est encore une autre méthode qui peut être employée pour réaliser cette tâche particulière, filter()
est habituellement capable d’effectuer les tâches de filtrage et donc peut également être utilisé dans cette situation pour réaliser cette tâche.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
list
(
filter
(
lambda
x: test_list
=
=
3
,
range
(
len
(test_list))))
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :