Di solito, abbiamo bisogno di trovare l’indice in cui si trova un particolare valore. Ci sono molti metodi per ottenerlo, usando index()
ecc. Ma a volte è necessario trovare tutti gli indici di un particolare valore nel caso in cui abbia più occorrenze nella lista.
Discutiamo alcuni modi per trovare gli indici di un valore in una data lista.
Metodo #1: Metodo ingenuo
Possiamo raggiungere questo compito iterando attraverso la lista e controllare quel valore e semplicemente aggiungere l’indice del valore nella nuova lista e stamparlo. Questo è il metodo base della forza bruta per raggiungere questo compito.
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 :
Metodo #2: Usare la comprensione della lista
La comprensione della lista è solo la tecnica stenografica per raggiungere il compito di forza bruta, usa solo meno righe di codice per raggiungere il compito e quindi fa risparmiare tempo ai programmatori.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
=
=
3
]
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Metodo #3 : Usando enumerate()
Utilizzando enumerate()
possiamo ottenere un compito simile, questa è una tecnica leggermente più veloce della precedente e quindi è raccomandata per essere usata sopra la tecnica di comprensione della lista.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Metodo #4: Usare filter()
Questo è ancora un altro metodo che può essere impiegato per raggiungere questo particolare compito, filter()
di solito è in grado di eseguire i compiti di filtraggio e quindi può anche essere usato in questa situazione per raggiungere questo compito.
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 :