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 :