Zoznam je kontajner, ktorý ukladá položky rôznych dátových typov (ints, floats, boolean, strings atď.) V usporiadanom poradí. Jedná sa o dôležitú dátovú štruktúru, ktorá je zabudovaná v Pythone. Údaje sú zapísané do hranatých zátvoriek ([]) a hodnoty sú oddelené čiarkou (,).
Položky v zozname sú indexované tak, že prvý prvok začína na indexe 0. Vo vytvorenom zozname môžete robiť zmeny pridaním nových položiek alebo aktualizáciou a odstránením existujúcich. Môže tiež obsahovať duplicitné položky a vnorený zoznam.
V zozname je k dispozícii veľa metód. Dôležitou je metóda index ().
V tomto návode sa dozviete:
- Register zoznamu Python ()
- Použitie for-loop na získanie indexu prvku v zozname
- Používanie while-loop a list.index ()
- Používanie porozumenia zoznamu na získanie indexu prvku v zozname
- Pomocou funkcie Enumerate získate index prvku v zozname
- Pomocou filtra získate index prvku v zozname
- Používanie NumPy na získanie indexu prvku v zozname
- Použitie more_itertools.locate () na získanie indexu prvku v zozname
Register zoznamu Python ()
Metóda list index () vám pomôže nájsť prvý najnižší index daného prvku. Ak sa v zozname nachádzajú duplicitné prvky, vráti sa prvý index prvku. Toto je najjednoduchší a najpriamejší spôsob získania indexu.
Okrem vstavanej metódy index index () môžete na získanie indexu použiť aj iné spôsoby, ako napríklad prechádzanie zoznamom, použitie metód porozumenia zoznamu, enumerate () a filtra.
Metóda list index () vracia prvý najnižší index daného prvku.
Syntax
list.index(element, start, end)
Parametre
Parametre | Popis |
prvok | Prvok, ktorý chcete získať index. |
začať | Tento parameter je voliteľný. Môžete definovať start: index na vyhľadanie prvku. Ak nie je uvedené, predvolená hodnota je 0. |
koniec | Tento parameter je voliteľný. Môžete určiť koncový index prvku, ktorý sa má prehľadať. Pokiaľ nie je uvedené, považuje sa to až na koniec zoznamu. |
Návratová hodnota
Metóda list index () vracia index daného prvku. Ak prvok nie je v zozname, spôsobí metóda index () chybu, napríklad ValueError: „Element“ sa v zozname nenachádza.
Príklad: Vyhľadanie indexu daného prvku.
V zozname my_list = ['A', 'B', 'C', 'D', 'E', 'F'] by sme chceli poznať index pre prvky C a F.
Nasledujúci príklad ukazuje, ako získať 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ýkon:
The index of element C is 2The index of element F is 5
Príklad: Použitie začiatku a konca v indexe ()
V tomto príklade sa pokúsime obmedziť hľadanie indexu v zozname pomocou začiatoč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ýkon:
The index of element C is 2The index of element F is 5The index of element D is 3
Príklad: Testovanie metódy index () s prvkom, ktorý nie je prítomný.
Pri pokuse o vyhľadanie indexu v zozname pre prvok, ktorý nie je prítomný, sa zobrazí chyba, ako je uvedené nižšie:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Výkon:
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žitie for-loop na získanie indexu prvku v zozname
Pri metóde list.index () sme videli, že poskytuje index prvku, ktorý sa odovzdáva ako argument.
Teraz považujte tento zoznam za: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Názov „Guru“ je v indexe prítomný trikrát a chcem všetky indexy s názvom „Guru“.
Pomocou for-loop by sme mali byť schopní získať viac indexov, ako je to znázornené v príklade nižšie.
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ýkon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Používanie while-loop a list.index ()
Použitie while-slučky bude prechádzať daným zoznamom, aby sa získali všetky indexy daného prvku.
V zozname: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] potrebujeme všetky indexy prvku 'Guru'.
Nižšie je uvedený príklad, ktorý ukazuje, ako získať všetky indexy pomocou cyklu 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)
Výkon:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Používanie porozumenia zoznamu na získanie indexu prvku v zozname
Ak chcete získať všetky indexy, rýchlym a priamym spôsobom je využiť porozumenie zoznamu v zozname.
Porozumenia zoznamu sú funkcie Pythonu, ktoré sa používajú na vytváranie nových sekvencií (ako sú zoznamy, slovníky atď.), Tj na použitie už vytvorených sekvencií.
Pomáhajú znižovať dlhšie cykly a uľahčujú čítanie a údržbu kódu.
Nasledujúci príklad ukazuje, ako 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ýkon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Pomocou funkcie Enumerate získate index prvku v zozname
Funkcia Enumerate () je vstavaná funkcia dostupná pre python. Môžete použiť enumerate na získanie všetkých indexov prvku v zozname. Vstup berie ako iterovateľný objekt (tj. Objekt, ktorý je možné opakovať) a výstupom je objekt s počítadlom každej položky.
Nasledujúci príklad ukazuje, ako využiť enumeráciu v zozname na získanie všetkých indexov pre daný prvok.
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ýkon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Pomocou filtra získate index prvku v zozname
Metóda filter () filtruje daný zoznam na základe danej funkcie. Každý prvok v zozname bude odovzdaný funkcii a požadované prvky budú filtrované na základe podmienok uvedených vo funkcii.
Použime metódu filter () na získanie indexov pre daný prvok v zozname.
Nasledujúci príklad ukazuje, ako sa dá v zozname použiť filter.
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ýkon:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Používanie NumPy na získanie indexu prvku v zozname
Knižnica NumPy sa špeciálne používa pre polia. Takže tu použijeme NumPy na získanie indexu prvku, ktorý potrebujeme, z uvedeného zoznamu.
Aby sme mohli používať NumPy, musíme si ich nainštalovať a importovať.
Tu sú kroky rovnaké:
Krok 1) Nainštalujte NumPy
pip install numpy
Krok 2) Importujte modul NumPy.
import numpy as np
Krok 3) Použite np.array na prevod zoznamu na pole
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Krok 4) Získajte index požadovaného prvku pomocou np.where ()
item_index = np.where(np_array == 'Guru')[0]
Výsledný pracovný kód s výstupom je nasledovný:
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ýkon:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Použitie more_itertools.locate () na získanie indexu prvku v zozname
More_itertools.locate () pomáha nájsť indexy prvku v zozname. Tento modul bude pracovať s pythonom verzie 3.5+. Najskôr je potrebné nainštalovať balík more_itertools .
Nasledujú kroky na inštaláciu a použitie more_itertools
Krok 1) Nainštalujte si more_itertools pomocou pipu (správca balíkov python). Príkaz je
pip install more_itertools
Krok 2) Po dokončení inštalácie importujte vyhľadávací modul, ako je uvedené nižšie
from more_itertools import locate
Teraz môžete využiť vyhľadávací modul v zozname, ako je uvedené nižšie v príklade:
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ýkon:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Zhrnutie:
- Metóda list index () vám pomôže nájsť index daného prvku. Toto je najjednoduchší a najpriamejší spôsob získania indexu.
- Metóda list index () vracia index daného prvku.
- Ak prvok nie je v zozname, spôsobí metóda index () chybu, napríklad ValueError: „Element“ sa v zozname nenachádza.
- Okrem vstavanej metódy zoznamu môžete využiť aj ďalšie spôsoby, ako získať index, napríklad opakovanie zoznamu, použitie porozumenia zoznamu, použitie enumerate (), použitie filtra atď.
- Použitie for-loop a while-loop na získanie viacerých indexov daného prvku.
- Ak chcete získať všetky indexy, rýchlym a priamym spôsobom je využiť porozumenie zoznamu v zozname.
- Porozumenia zoznamu sú funkcie Pythonu, ktoré sa používajú na vytváranie nových sekvencií.
- Pomáhajú znižovať dlhšie cykly a uľahčujú čítanie a údržbu kódu.
- Môžete použiť enumerate na získanie všetkých indexov prvku v zozname.
- Funkcia Enumerate () je vstavaná funkcia dostupná pre python. Vstup berie ako iterovateľný objekt (tj. Objekt, ktorý je možné opakovať) a výstupom je objekt s počítadlom každej položky.
- Metóda filter () filtruje daný zoznam na základe danej funkcie.
- Knižnica Numpy sa špeciálne používa pre polia. Môžete použiť NumPy na získanie indexu prvku uvedeného v zozname.
- More_itertools.locate () je ďalšia knižnica pythonu, ktorá pomáha nájsť indexy daného zoznamu.