Zwykle wymagamy znalezienia indeksu, w którym znajduje się dana wartość. Istnieje wiele metod, aby to osiągnąć, używając index()
itp. Ale czasami wymagają, aby znaleźć wszystkie indeksy danej wartości w przypadku, gdy ma ona wiele wystąpień na liście.
Przedyskutujmy niektóre sposoby na znalezienie indeksów wartości w danej liście.
Metoda #1 : Metoda naiwna
Możemy osiągnąć to zadanie przez iterację przez listę i sprawdzić dla tej wartości i po prostu dołączyć indeks wartości w nowej liście i wydrukować to. To jest podstawowa metoda brute force do osiągnięcia tego zadania.
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 :
Metoda #2 : Użycie zrozumienia listy
Zrozumienie listy jest tylko techniką skrótu do osiągnięcia zadania brute force, po prostu używa mniej linii kodu do osiągnięcia zadania, a więc oszczędza czas programistów.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
=
=
3
]
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Metoda #3 : Używając enumerate()
Używając enumerate()
możemy osiągnąć podobne zadanie, jest to nieco szybsza technika niż powyższa i stąd jest zalecana do stosowania nad techniką rozumienia listy.
test_list
=
print
(
"Original list : "
+
str
(test_list))
res_list
=
print
(
"New indices list : "
+
str
(res_list))
Original list : New indices list :
Metoda #4 : Użycie filter()
Jest to kolejna metoda, która może być zastosowana do realizacji tego konkretnego zadania, filter()
zazwyczaj jest w stanie wykonać zadania filtrowania i stąd może być również użyta w tej sytuacji do realizacji tego zadania.
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 :