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, inprint("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.