Python Lista indeksu () z przykładem
⚡ Inteligentne podsumowanie
Python Funkcja list index() zwraca pierwszą pozycję danego elementu, podczas gdy looping Konstrukcje, wyrażenia listowe, enumerate(), filter(), biblioteka NumPy i more_itertools.locate() rozszerzają tę technikę, umożliwiając zebranie wszystkich pasujących indeksów na liście zawierającej zduplikowane wartości.

Lista to kontener przechowujący elementy różnych typów danych (int, float, wartość logiczna, ciągi znaków itp.) w uporządkowanej kolejności. Jest to ważna struktura danych, która jest wbudowana PythonDane są zapisywane w nawiasach kwadratowych ([]), a wartości są rozdzielone przecinkami (,).
Pozycje znajdujące się na liście indeksowane są od pierwszego elementu rozpoczynającego się od indeksu 0. W utworzonej liście możesz dokonywać zmian poprzez dodanie nowych pozycji lub aktualizację, usunięcie istniejących. Może również zawierać zduplikowane elementy i zagnieżdżoną listę.
Na liście dostępnych jest wiele metod, a jedną z ważniejszych jest index().
Python Indeks listy()
Metoda list Index() pomaga znaleźć pierwszy najniższy indeks danego elementu. Jeśli na liście znajdują się zduplikowane elementy, zwracany jest pierwszy indeks elementu. Jest to najłatwiejszy i najprostszy sposób uzyskania indeksu.
Oprócz wbudowanej metody index() listy, możesz również użyć innych sposobów uzyskania indeksu, takich jak looping poprzez listę, wykorzystując wyrażenia listowe, enumerate(), metody filtrujące.
Metoda list Index() zwraca pierwszy najniższy indeks danego elementu.
Składnia
list.index(element, start, end)
Parametry
| Parametry | OPIS |
|---|---|
| element | Element, dla którego chcesz uzyskać indeks. |
| początek | Ten parametr jest opcjonalny. Możesz zdefiniować indeks początkowy wyszukiwania elementu. Jeśli nie zostanie podany, wartością domyślną jest 0. |
| zakończenia | Ten parametr jest opcjonalny. Można określić indeks końcowy szukanego elementu. Jeżeli nie zostanie podany, jest on uwzględniany do końca listy. |
Wartość zwracana
Metoda list Index() zwraca indeks danego elementu. Jeśli elementu nie ma na liście, metoda Index() zgłosi błąd, np. ValueError: „Element” nie znajduje się na liście.
Przykład: Aby znaleźć indeks danego elementu.
Na liście my_list = ['A', 'B', 'C', 'D', 'E', 'F'] chcielibyśmy poznać indeks elementów C i F.
Poniższy przykład pokazuje, jak uzyskać indeks.
my_list = ['A', 'B', 'C', 'D', 'E', 'F'] print("The index of element C is ", my_list.index('C')) print("The index of element F is ", my_list.index('F'))
Wyjście:
The index of element C is 2 The index of element F is 5
Przykład: użycie początku i końca w indeksie()
W tym przykładzie spróbujemy ograniczyć wyszukiwanie według indeksu na liście, używając indeksu początkowego i końcowego.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('C', 1, 5)) print("The index of element F is ", my_list.index('F', 3, 7)) #using just the startindex print("The index of element D is ", my_list.index('D', 1))
Wyjście:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Przykład: Aby przetestować metodę index() przy użyciu elementu, który nie istnieje.
Próba wyszukania na liście elementu, którego nie ma, spowoduje wyświetlenie poniższego komunikatu o błędzie:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Wyjście:
Traceback (most recent call last): File "display.py", line 3, in <module> print("The index of element C is ", my_list.index('Z')) ValueError: 'Z' is not in list
Użycie pętli for w celu uzyskania indeksu elementu na liście
W przypadku metody list.index() widzieliśmy, że podaje ona indeks elementu przekazywanego jako argument.
Teraz rozważ listę jako: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Nazwa 'Guru' występuje 3 razy w indeksie, a ja chcę mieć wszystkie indeksy o nazwie 'Guru".
Używając pętli for powinniśmy być w stanie pobrać wiele indeksów, jak pokazano w przykładzie poniżej.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] all_indexes = [] for i in range(0, len(my_list)) : if my_list[i] == 'Guru' : all_indexes.append(i) print("Originallist ", my_list) print("Indexes for element Guru : ", all_indexes)
Wyjście:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Używanie pętli while i list.index()
Użycie pętli while spowoduje przejście przez podaną listę w celu uzyskania wszystkich indeksów danego elementu.
Na liście: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], potrzebujemy wszystkich indeksów elementu 'Guru".
Poniżej znajduje się przykład pokazujący, jak pobrać wszystkie indeksy za pomocą pętli while.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index('Guru', elementindex+1) result.append(elementindex) except ValueError: break print("OriginalList is ", my_list) print("The index for element Guru is ", result)
Wyjście:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Używanie rozumienia list do uzyskania indeksu elementu na liście
Aby uzyskać wszystkie indeksy, szybkim i prostym sposobem jest skorzystanie z funkcji rozumienia list na liście.
Rozwiązania listowe są Python funkcje służące do tworzenia nowych ciągów (takich jak listy, słowniki itp.), czyli wykorzystujące już utworzone ciągi.
Pomagają zredukować dłuższe pętle i sprawiają, że kod jest łatwiejszy do odczytania i utrzymania.
Poniższy przykład pokazuje, jak to zrobić:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru'] print("Indexes for element Guru : ", all_indexes)
Wyjście:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Użycie Enumerate w celu uzyskania indeksu elementu na liście
Funkcja Enumerate() jest wbudowaną funkcją dostępną w PythonMożesz użyć funkcji enumerate, aby uzyskać wszystkie indeksy elementu na liście. Funkcja ta przyjmuje dane wejściowe jako obiekt iterowalny (tj. obiekt, który można zapętlić), a dane wyjściowe to obiekt z licznikiem dla każdego elementu.
Poniższy przykład pokazuje, jak użyć polecenia enumerate na liście, aby pobrać wszystkie indeksy danego elementu.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Wyjście:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Użycie filter do pobrania indeksu elementu na liście
Metoda filter() filtruje podaną listę na podstawie podanej funkcji. Każdy element listy zostanie przekazany do funkcji, a wymagane elementy zostaną odfiltrowane na podstawie warunku podanego w funkcji.
Użyjmy metody filter(), aby uzyskać indeksy dla danego elementu na liście.
Poniższy przykład pokazuje, jak używać filtru na liście.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist ", my_list) all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list)))) print("Indexes for element Guru : ", all_indexes)
Wyjście:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Używanie NumPy do pobierania indeksu elementu na liście
Biblioteka NumPy jest przeznaczona specjalnie do tablic. Dlatego tutaj wykorzystamy NumPy, aby pobrać indeks potrzebnego elementu z podanej listy.
Aby skorzystać z NumPy, musimy go zainstalować i zaimportować.
Oto kroki, które należy wykonać:
Krok 1) Zainstaluj NumPy
pip install numpy
Krok 2) Zaimportuj moduł NumPy.
import numpy as np
Krok 3) Użyj np.array, aby przekonwertować listę na tablicę.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Krok 4) Pobierz indeks interesującego Cię elementu, używając np.where().
item_index = np.where(np_array == 'Guru')[0]
Ostateczny działający kod z danymi wyjściowymi jest następujący:
import numpy as np my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list) item_index = np.where(np_array == 'Guru')[0] print("Originallist ", my_list) print("Indexes for element Guru :", item_index)
Wyjście:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Użycie more_itertools.locate() w celu uzyskania indeksu elementu na liście
Funkcja more_itertools.locate() pomaga znaleźć indeksy elementu na liście. Ten moduł będzie działać z Python wersja 3.5+. Pakiet more_itertools aby z niego skorzystać, należy go najpierw zainstalować.
Poniżej przedstawiono kroki umożliwiające instalację i korzystanie z more_itertools:
Krok 1) Zainstaluj more_itertools za pomocą pip (Python Menedżer pakietów). Polecenie to
pip install more_itertools
Krok 2) Po zakończeniu instalacji zaimportuj plik zlokalizować moduł jak pokazano poniżej.
from more_itertools import locate
Teraz możesz skorzystać z modułu lokalizacji na liście, jak pokazano poniżej w przykładzie:
from more_itertools import locate my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] print("Originallist : ", my_list) print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Wyjście:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
