Python List index () s příkladem

Obsah:

Anonim

Seznam je kontejner, který ukládá položky různých datových typů (ints, floats, boolean, strings atd.) V seřazeném pořadí. Jedná se o důležitou datovou strukturu, která je zabudována v Pythonu. Data jsou zapsána do hranatých závorek ([]) a hodnoty jsou odděleny čárkou (,).

Položky v seznamu jsou indexovány s prvním prvkem začínajícím na indexu 0. Ve vytvořeném seznamu můžete provádět změny přidáním nových položek nebo aktualizací a odstraněním stávajících. Může mít také duplicitní položky a vnořený seznam.

Na seznamu je k dispozici mnoho metod a důležitou je index ().

V tomto výukovém programu se naučíte:

  • Python List index ()
  • Použití for-loop k získání indexu prvku v seznamu
  • Použití while-loop a list.index ()
  • Použití porozumění seznamu k získání indexu prvku v seznamu
  • Pomocí výčtu získáte index prvku v seznamu
  • Pomocí filtru získáte index prvku v seznamu
  • Použití NumPy k získání indexu prvku v seznamu
  • Použití more_itertools.locate () k získání indexu prvku v seznamu

Python List index ()

Metoda list index () vám pomůže najít první nejnižší index daného prvku. Pokud jsou v seznamu duplicitní prvky, je vrácen první index prvku. Toto je nejjednodušší a přímý způsob získání indexu.

Kromě metody integrovaného seznamu index () můžete také použít jiné způsoby, jak získat index, jako je procházení seznamu, pomocí metod porozumění seznamu, výčtu () a filtrování.

Metoda list index () vrací první nejnižší index daného prvku.

Syntax

list.index(element, start, end)

Parametry

Parametry Popis
živel Prvek, který chcete získat index.
Start Tento parametr je volitelný. Můžete definovat start: index pro vyhledání prvku. Pokud není zadán, výchozí hodnota je 0.
konec Tento parametr je volitelný. Můžete určit koncový index prvku, který má být prohledán. Pokud není uveden, považuje se to až na konec seznamu.

Návratová hodnota

Metoda list index () vrací index daného prvku. Pokud prvek v seznamu není, způsobí metoda index () chybu, například ValueError: „Element“ není v seznamu.

Příklad: Najít index daného prvku.

V seznamu my_list = ['A', 'B', 'C', 'D', 'E', 'F'] bychom chtěli znát index prvků C a F.

Níže uvedený příklad ukazuje, jak získat index.

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'))

Výstup:

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

Příklad: Použití začátku a konce v indexu ()

V tomto příkladu se pokusíme omezit hledání indexu v seznamu pomocí počátečního a koncového indexu.

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))

Výstup:

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

Příklad: Chcete-li otestovat metodu index () s prvkem, který není k dispozici.

Když se pokusíte vyhledat index v seznamu pro prvek, který není přítomen, zobrazí se chyba, jak je uvedeno níže:

my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))

Výstup:

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

Použití for-loop k získání indexu prvku v seznamu

U metody list.index () jsme viděli, že poskytuje index prvku, který je předán jako argument.

Seznam nyní považujte za: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Jméno „Guru“ je v indexu přítomno třikrát a chci všechny indexy s názvem „Guru“.

Pomocí for-loop bychom měli být schopni získat více indexů, jak je znázorněno v příkladu níže.

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)

Výstup:

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

Použití while-loop a list.index ()

Použitím while smyčky projdete uvedeným seznamem, abyste získali všechny indexy daného prvku.

V seznamu: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] potřebujeme všechny indexy prvku 'Guru'.

Níže je uveden příklad ukazuje, jak získat všechny indexy pomocí while-loop

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)

Výstup:

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

Použití porozumění seznamu k získání indexu prvku v seznamu

Chcete-li získat všechny indexy, rychlou a přímou cestou je využití porozumění seznamu v seznamu.

Porozumění seznamu jsou funkce Pythonu, které se používají k vytváření nových sekvencí (jako jsou seznamy, slovníky atd.), Tj. Pomocí sekvencí, které již byly vytvořeny.

Pomáhají snižovat delší smyčky a usnadňují čtení a údržbu kódu.

Následující příklad ukazuje, jak na to:

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)

Výstup:

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

Pomocí výčtu získáte index prvku v seznamu

Funkce Enumerate () je vestavěná funkce dostupná v pythonu. Můžete použít enumerate k získání všech indexů prvku v seznamu. Bere vstup jako iterovatelný objekt (tj. Objekt, který lze opakovat) a výstupem je objekt s čítačem každé položky.

Následující příklad ukazuje, jak využít výčet v seznamu k získání všech indexů pro daný prvek.

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'])

Výstup:

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

Pomocí filtru získáte index prvku v seznamu

Metoda filter () filtruje daný seznam na základě dané funkce. Každý prvek ze seznamu bude předán funkci a požadované prvky budou filtrovány na základě podmínky uvedené ve funkci.

Pojďme použít metodu filter () k získání indexů pro daný prvek v seznamu.

Následující příklad ukazuje, jak využít filtr na seznamu.

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)

Výstup:

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

Použití NumPy k získání indexu prvku v seznamu

Knihovna NumPy se speciálně používá pro pole. Zde tedy použijeme NumPy k získání indexu prvku, který potřebujeme, z uvedeného seznamu.

Abychom mohli NumPy využívat, musíme si jej nainstalovat a importovat.

Tady jsou stejné kroky:

Krok 1) Nainstalujte NumPy

pip install numpy

Krok 2) Importujte modul NumPy.

import numpy as np

Krok 3) Využijte np.array k převodu seznamu na pole

my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)

Krok 4) Získejte index prvku, který chcete, pomocí np.where ()

item_index = np.where(np_array == 'Guru')[0]

Konečný pracovní kód s výstupem je následující:

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)

Výstup:

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

Použití more_itertools.locate () k získání indexu prvku v seznamu

The more_itertools.locate () pomáhá najít indexy prvku v seznamu. Tento modul bude fungovat s pythonem verze 3.5+. Nejprve je třeba nainstalovat balíček more_itertools .

Následují kroky k instalaci a použití more_itertools

Krok 1) Nainstalujte more_itertools pomocí pip (správce balíčků pythonu). Příkaz je

pip install more_itertools

Krok 2) Po dokončení instalace importujte vyhledávací modul, jak je znázorněno níže

from more_itertools import locate

Nyní můžete použít vyhledávací modul v seznamu, jak je znázorněno níže v příkladu:

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')))

Výstup:

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

Souhrn:

  • Metoda list index () vám pomůže najít index daného prvku. Toto je nejjednodušší a přímý způsob získání indexu.
  • Metoda list index () vrací index daného prvku.
  • Pokud prvek není v seznamu, způsobí metoda index () chybu, například ValueError: 'Element' není v seznamu.
  • Kromě metody předdefinovaného seznamu můžete využít i jiné způsoby, jak získat index, jako je procházení seznamu, použití porozumění seznamu, použití enumerate (), použití filtru atd.
  • Pomocí for-loop a while-loop získáte více indexů daného prvku.
  • Chcete-li získat všechny indexy, rychlou a přímou cestou je využití porozumění seznamu v seznamu.
  • Porozumění seznamu jsou funkce Pythonu, které se používají k vytváření nových sekvencí.
  • Pomáhají snižovat delší smyčky a usnadňují čtení a údržbu kódu.
  • Můžete použít enumerate k získání všech indexů prvku v seznamu.
  • Funkce Enumerate () je vestavěná funkce dostupná v pythonu. Bere vstup jako iterovatelný objekt (tj. Objekt, který lze opakovat) a výstupem je objekt s čítačem každé položky.
  • Metoda filter () filtruje daný seznam na základě dané funkce.
  • Knihovna NumPy se speciálně používá pro pole. NumPy můžete využít k získání indexu prvku uvedeného v seznamu.
  • More_itertools.locate () je další knihovna pythonu, která pomáhá najít indexy daného seznamu.