Python Lista indeksu () z przykładem

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 najważniejszą z nich jest indeks().

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 list Index() możesz także użyć innych sposobów uzyskania indeksu, takich jak przeglądanie listy w pętli, używanie wyrażeń listowych, enumerate() i metod filtrujących.

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ć start: indeks, aby wyszukać element. Jeżeli nie podano, 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 moja_lista = ['A', 'B', 'C', 'D', 'E', 'F'] chcielibyśmy poznać indeks elementu 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, wykorzystując indeks początkowy i końcowy.

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() z elementem, który nie istnieje.

Podczas próby wyszukania indeksu na liście elementu, którego nie ma, pojawi się błąd pokazany poniżej:

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ż tę listę jako: moja_lista = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Imię „Guru” występuje w indeksie 3 razy i chcę, aby wszystkie indeksy miały nazwę „Guru”.

Używając pętli for, powinniśmy uzyskać wiele indeksów, jak pokazano w poniższym przykładzie.

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: moja_lista = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] potrzebujemy wszystkich indeksów elementu 'Guru'.

Poniżej podano przykład pokazujący, jak uzyskać 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 Pythonie. Możesz użyć enumerate, aby uzyskać wszystkie indeksy elementu na liście. Pobiera dane wejściowe jako obiekt iterowalny (tj. obiekt, który można zapętlić), a wyjście jest obiektem z licznikiem dla każdego elementu.

Poniższy przykład pokazuje, jak użyć enumerate na liście, aby uzyskać wszystkie indeksy dla 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 korzystać z filtra 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 specjalnie używana do tablic. Więc tutaj skorzystamy z NumPy, aby uzyskać indeks potrzebnego elementu z podanej listy.

Aby skorzystać z NumPy, musimy go zainstalować i zaimportować.

Oto kroki dla tego samego:

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) Uzyskaj indeks żądanego 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 Pythonem w wersji 3.5 lub nowszej. Paczka more_itertools aby z niego skorzystać, należy go najpierw zainstalować.

Poniżej przedstawiono kroki instalacji i korzystania z more_itertools

Krok 1) Zainstaluj more_itertools za pomocą pip (menedżer pakietów Pythona). Polecenie jest

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]

Podsumowanie

  • Metoda list Index() pomaga znaleźć indeks danego elementu. Jest to najłatwiejszy i najprostszy sposób uzyskania indeksu.
  • Metoda list Index() zwraca indeks danego elementu.
  • Jeśli elementu nie ma na liście, metoda Index() zgłosi błąd, na przykład ValueError: „Element” nie znajduje się na liście.
  • Oprócz wbudowanej metody list możesz także skorzystać z innych sposobów uzyskania indeksu, takich jak przeglądanie listy w pętli, używanie wyrażeń listowych, użycie enumerate(), użycie filtru itp.
  • Używanie pętli for i while w celu uzyskania wielu indeksów danego elementu.
  • 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 sekwencji.
  • Pomagają zredukować dłuższe pętle i sprawiają, że kod jest łatwiejszy do odczytania i utrzymania.
  • Możesz użyć enumerate, aby uzyskać wszystkie indeksy elementu na liście.
  • Funkcja Enumerate() jest wbudowaną funkcją dostępną w Pythonie. Pobiera dane wejściowe jako obiekt iterowalny (tj. obiekt, który można zapętlić), a wyjście jest obiektem z licznikiem dla każdego elementu.
  • Metoda filter() filtruje podaną listę na podstawie podanej funkcji.
  • Biblioteka Numpy jest specjalnie używana do tablic. Możesz użyć NumPy, aby uzyskać indeks elementu podanego na liście.
  • More_itertools.locate() to kolejna biblioteka Pythona, która pomaga znaleźć indeksy podanej listy.