Python List index () s príkladom

Obsah:

Anonim

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