Python List index () z przykładem

Spisie treści:

Anonim

Lista to kontener, który przechowuje elementy różnych typów danych (wartości typu int, zmiennoprzecinkowe, logiczne, ciągi znaków itp.) W uporządkowanej kolejności. Jest to ważna struktura danych wbudowana w Python. Dane są zapisywane w nawiasach kwadratowych ([]), a wartości są oddzielane przecinkiem (,).

Pozycje wewnątrz listy są indeksowane od pierwszego elementu zaczynającego się od indeksu 0. Zmiany w utworzonej liście można wprowadzać dodając nowe pozycje lub aktualizując, usuwając istniejące. Może również zawierać zduplikowane elementy i zagnieżdżoną listę.

Istnieje wiele metod dostępnych na liście, a jedną z ważniejszych jest index ().

W tym samouczku dowiesz się:

  • Indeks listy Pythona ()
  • Użycie pętli for do pobrania indeksu elementu na liście
  • Korzystanie z pętli while i list.index ()
  • Korzystanie z funkcji list złożonych w celu uzyskania indeksu elementu na liście
  • Użycie Enumerate, aby uzyskać indeks elementu na liście
  • Użycie filtru do uzyskania indeksu elementu na liście
  • Użycie NumPy do pobrania indeksu elementu na liście
  • Użycie metody more_itertools.locate () do pobrania indeksu elementu na liście

Indeks listy Pythona ()

Metoda list index () pomaga znaleźć pierwszy najniższy indeks danego elementu. Jeśli lista zawiera zduplikowane elementy, zwracany jest pierwszy indeks elementu. To najłatwiejszy i najprostszy sposób na uzyskanie indeksu.

Oprócz wbudowanej metody index () listy, możesz również użyć innych sposobów uzyskania indeksu, takich jak zapętlanie listy, używanie wyrażeń listowych, 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ć początek: indeks, aby wyszukać element. Jeśli nie zostanie podana, wartość domyślna to 0.
koniec Ten parametr jest opcjonalny. Możesz określić indeks końcowy przeszukiwanego elementu. Jeśli nie zostanie podany, jest brany pod uwagę do końca listy.

Wartość zwracana

Metoda list index () zwraca indeks podanego elementu. Jeśli elementu nie ma na liście, metoda index () zwróci błąd, na przykład ValueError: „Elementu” nie ma 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 dla 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'))

Wynik:

The index of element C is 2The index of element F is 5

Przykład: użycie początku i końca w index ()

W tym przykładzie spróbuje ograniczyć wyszukiwanie indeksu na liście przy użyciu 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 startindexprint("The index of element D is ", my_list.index('D', 1))

Wynik:

The index of element C is 2The index of element F is 5The index of element D is 3

Przykład: aby przetestować metodę index () z elementem, którego nie ma.

Podczas próby wyszukania indeksu na liście w poszukiwaniu elementu, którego nie ma, pojawi się błąd, jak pokazano 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'))

Wynik:

Traceback (most recent call last):File "display.py", line 3, in print("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list

Użycie pętli for do pobrania indeksu elementu na liście

W przypadku metody list.index () widzieliśmy, że podaje ona indeks elementu, który jest przekazywany jako argument.

Rozważ teraz listę jako: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Nazwa „Guru” występuje w indeksie 3 razy i chcę, aby wszystkie indeksy miały nazwę „Guru”.

Używając pętli for powinniśmy być w stanie 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)

Wynik:

Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Korzystanie z pętli while i list.index ()

Użycie pętli while spowoduje zapętlenie podanej listy w celu pobrania 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 podany jest przykład pokazujący, jak uzyskać wszystkie indeksy za pomocą pętli while

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("OriginalList is ", my_list)print("The index for element Guru is ", result)

Wynik:

OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]

Korzystanie z funkcji list złożonych w celu uzyskania indeksu elementu na liście

Aby uzyskać wszystkie indeksy, szybkim i prostym sposobem jest skorzystanie z funkcji rozumienia list na liście.

Listy składane to funkcje Pythona używane do tworzenia nowych sekwencji (takich jak listy, słowniki itp.), Tj. Przy użyciu sekwencji, które zostały już utworzone.

Pomagają skrócić 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)

Wynik:

Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Użycie Enumerate, aby uzyskać indeks elementu na liście

Funkcja Enumerate () jest funkcją wbudowaną 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 to obiekt z licznikiem dla każdego elementu.

Poniższy przykład pokazuje, jak korzystać z 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'])

Wynik:

Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Użycie filtru do uzyskania indeksu elementu na liście

Metoda filter () filtruje daną listę na podstawie podanej funkcji. Każdy element listy zostanie przekazany do funkcji, a wymagane elementy zostaną przefiltrowane 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)

Wynik:

Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Użycie NumPy do pobrania indeksu elementu na liście

Biblioteka NumPy jest specjalnie używana do tablic. Więc tutaj użyjemy NumPy, aby uzyskać indeks elementu, którego potrzebujemy 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) Skorzystaj z 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 npmy_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)

Wynik:

Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]

Użycie metody more_itertools.locate () do pobrania indeksu elementu na liście

More_itertools.locate () pomaga znaleźć indeksy elementu na liście.Ten moduł będzie działał z wersją Pythona 3.5+. Pakiet more_itertools musi być najpierw zainstalowany, aby z niego skorzystać.

Poniżej przedstawiono kroki instalacji i korzystania z more_itertools

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

pip install more_itertools

Krok 2) Po zakończeniu instalacji zaimportuj moduł lokalizacji , jak pokazano poniżej

from more_itertools import locate

Teraz możesz skorzystać z modułu locate na liście, jak pokazano poniżej w przykładzie:

from more_itertools import locatemy_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')))

Wynik:

Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Podsumowanie:

  • Metoda list index () pomaga znaleźć indeks danego elementu. To najłatwiejszy i najprostszy sposób na uzyskanie indeksu.
  • Metoda list index () zwraca indeks podanego elementu.
  • Jeśli elementu nie ma na liście, metoda index () zwróci błąd, na przykład ValueError: „Elementu” nie ma na liście.
  • Oprócz wbudowanej metody list, możesz również skorzystać z innych sposobów uzyskania indeksu, takich jak zapętlanie listy, używanie wyrażeń listowych, użycie enumerate (), użycie filtru itp.
  • Używanie pętli for i while, aby uzyskać wiele indeksów danego elementu.
  • Aby uzyskać wszystkie indeksy, szybkim i prostym sposobem jest skorzystanie z funkcji rozumienia list na liście.
  • Listy składane to funkcje Pythona używane do tworzenia nowych sekwencji.
  • Pomagają skrócić 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 funkcją wbudowaną dostępną w Pythonie. Pobiera dane wejściowe jako obiekt iterowalny (tj. Obiekt, który można zapętlić), a wyjście to obiekt z licznikiem dla każdego elementu.
  • Metoda filter () filtruje daną listę na podstawie podanej funkcji.
  • Biblioteka Numpy jest specjalnie używana do tablic. Możesz skorzystać z NumPy, aby uzyskać indeks elementu podanego na liście.
  • More_itertools.locate () to kolejna biblioteka Pythona, która pomaga znaleźć indeksy podanej listy.