Python Popis indeksa() s primjerom
Popis je spremnik koji pohranjuje stavke različitih tipova podataka (ints, float, Booleov, nizovi itd.) u uređenom nizu. To je važna struktura podataka koja je ugrađena Python. Podaci se pišu unutar uglatih zagrada ([]), a vrijednosti se odvajaju zarezom(,).
Stavke unutar popisa su indeksirane s prvim elementom počevši od indeksa 0. Možete napraviti promjene u kreiranom popisu dodavanjem novih stavki ili ažuriranjem, brisanjem postojećih. Također može imati duplicirane stavke i ugniježđeni popis.
Postoji mnogo dostupnih metoda na popisu, a jedna od važnih je index().
Python Indeks popisa()
Metoda list index() pomaže vam pronaći prvi najniži indeks zadanog elementa. Ako unutar popisa postoje dupli elementi, vraća se prvi indeks elementa. Ovo je najlakši i najjednostavniji način za dobivanje indeksa.
Osim ugrađene metode popisa index(), možete koristiti i druge načine za dobivanje indeksa kao što je ponavljanje kroz popis, korištenje popisa razumijevanja, enumerate(), metode filtriranja.
Metoda list index() vraća prvi najniži indeks zadanog elementa.
Sintaksa
list.index(element, start, end)
Parametri
Parametri | Description |
---|---|
element | Element za koji želite da dobijete indeks. |
početak | Ovaj parametar nije obavezan. Možete definirati start: index za traženje elementa. Ako nije navedeno, zadana vrijednost je 0. |
kraj | Ovaj parametar nije obavezan. Možete odrediti krajnji indeks za element koji se traži. Ako nije dano, smatra se do kraja popisa. |
Povratna vrijednost
Metoda list index() vraća indeks zadanog elementa. Ako element nije prisutan na popisu, metoda index() izbacit će pogrešku, na primjer, ValueError: 'Element' nije na popisu.
Primjer: pronaći indeks zadanog elementa.
U popisu my_list = ['A', 'B', 'C', 'D', 'E', 'F'], željeli bismo znati indeks za elemente C i F.
Primjer u nastavku pokazuje kako doći do indeksa.
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'))
Izlaz:
The index of element C is 2 The index of element F is 5
Primjer: korištenje početka i kraja u index()
U ovom primjeru pokušat ćemo ograničiti pretraživanje indeksa na popisu pomoću početnog i završnog indeksa.
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 startindex print("The index of element D is ", my_list.index('D', 1))
Izlaz:
The index of element C is 2 The index of element F is 5 The index of element D is 3
Primjer: Za testiranje metode index() s elementom koji nije prisutan.
Kada pokušate tražiti indeks na popisu za element koji nije prisutan, dobit ćete pogrešku kao što je prikazano u nastavku:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'] print("The index of element C is ", my_list.index('Z'))
Izlaz:
Traceback (most recent call last): File "display.py", line 3, in <module> print("The index of element C is ", my_list.index('Z')) ValueError: 'Z' is not in list
Korištenje for-petlje za dobivanje indeksa elementa na popisu
Kod metode list.index() vidjeli smo da ona daje indeks elementa koji se prosljeđuje kao argument.
Sada razmotrite popis kao: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] . Ime 'Guru' je prisutno 3 puta u indeksu, a ja želim sve indekse s imenom 'Guru'.
Korištenjem for-petlje trebali bismo moći dobiti višestruke indekse kao što je prikazano u donjem primjeru.
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)
Izlaz:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Korištenje while-petlje i list.index()
Korištenje while-petlje proći će kroz dani popis da bi se dobili svi indeksi danog elementa.
Na popisu: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], potrebni su nam svi indeksi elementa 'Guru'.
U nastavku je dat primjer koji pokazuje kako dobiti sve indekse pomoću while-petlje
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] result = [] elementindex = -1 while True: try: elementindex = my_list.index('Guru', elementindex+1) result.append(elementindex) except ValueError: break print("OriginalList is ", my_list) print("The index for element Guru is ", result)
Izlaz:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] The index for element Guru is [0, 3, 6]
Korištenje razumijevanja popisa za dobivanje indeksa elementa na popisu
Da biste dobili sve indekse, brz i jednostavan način je korištenje razumijevanja popisa na popisu.
Popis shvaćanja su Python funkcije koje se koriste za kreiranje novih nizova (kao što su popisi, rječnici itd.) tj. pomoću nizova koji su već kreirani.
Oni pomažu u smanjenju dužih petlji i čine vaš kod lakšim za čitanje i održavanje.
Sljedeći primjer pokazuje kako to učiniti:
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)
Izlaz:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Korištenje Enumerate za dobivanje indeksa elementa na popisu
Funkcija Enumerate() je ugrađena funkcija dostupna s pythonom. Možete koristiti enumerate da dobijete sve indekse elementa na popisu. Uzima ulaz kao objekt koji se može ponavljati (tj. objekt koji se može petljati), a izlaz je objekt s brojačem za svaku stavku.
Sljedeći primjer pokazuje kako koristiti enumerate na popisu da biste dobili sve indekse za dati element.
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'])
Izlaz:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Korištenje filtra za dobivanje indeksa elementa na popisu
Metoda filter() filtrira zadani popis na temelju zadane funkcije. Svaki element popisa bit će proslijeđen funkciji, a potrebni elementi bit će filtrirani na temelju uvjeta zadanih u funkciji.
Upotrijebimo metodu filter() da dobijemo indekse za dati element na popisu.
Sljedeći primjer pokazuje kako koristiti filtar na popisu.
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)
Izlaz:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Korištenje NumPy za dobivanje indeksa elementa na popisu
NumPy biblioteka se posebno koristi za nizove. Stoga ćemo ovdje koristiti NumPy za dobivanje indeksa elementa koji nam je potreban s danog popisa.
Da bismo koristili NumPy, moramo ga instalirati i uvesti.
Evo koraka za isto:
Korak 1) Instalirajte NumPy
pip install numpy
Korak 2) Uvezite NumPy modul.
import numpy as np
Korak 3) Koristite np.array za pretvaranje popisa u niz
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] np_array = np.array(my_list)
Korak 4) Dohvatite indeks željenog elementa pomoću np.where()
item_index = np.where(np_array == 'Guru')[0]
Konačni radni kod s izlazom je sljedeći:
import numpy as np my_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)
Izlaz:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0 3 6]
Korištenje more_itertools.locate() za dobivanje indeksa elementa na popisu
More_itertools.locate() pomaže pronaći indekse elementa na popisu. Ovaj modul radit će s python verzijom 3.5+. Paket more_itertools prvo se mora instalirati da biste ga mogli koristiti.
Slijede koraci za instaliranje i korištenje more_itertools
Korak 1) Instalirajte more_itertools koristeći pip (python upravitelj paketa). Zapovijed je
pip install more_itertools
Korak 2) Nakon dovršetka instalacije uvezite smjestiti modul kao što je prikazano u nastavku
from more_itertools import locate
Sada možete koristiti modul za lociranje na popisu kao što je prikazano u primjeru ispod:
from more_itertools import locate my_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')))
Izlaz:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'] Indexes for element Guru : [0, 3, 6]
Rezime
- Metoda list index() pomaže vam pronaći indeks zadanog elementa. Ovo je najlakši i najjednostavniji način za dobivanje indeksa.
- Metoda list index() vraća indeks zadanog elementa.
- Ako element nije prisutan na popisu, metoda index() izbacit će pogrešku, na primjer, ValueError: 'Element' nije na popisu.
- Osim ugrađene metode popisa, također možete koristiti druge načine za dobivanje indeksa kao što je ponavljanje kroz popis, korištenje razumijevanja popisa, korištenje enumerate(), korištenje filtera itd.
- Korištenje for-petlje i while-petlje za dobivanje višestrukih indeksa zadanog elementa.
- Da biste dobili sve indekse, brz i jednostavan način je korištenje razumijevanja popisa na popisu.
- Popis shvaćanja su Python funkcije koje se koriste za stvaranje novih nizova.
- Oni pomažu u smanjenju dužih petlji i čine vaš kod lakšim za čitanje i održavanje.
- Možete koristiti enumerate da dobijete sve indekse elementa na popisu.
- Funkcija Enumerate() je ugrađena funkcija dostupna s pythonom. Uzima ulaz kao objekt koji se može ponavljati (tj. objekt koji se može petljati), a izlaz je objekt s brojačem za svaku stavku.
- Metoda filter() filtrira zadani popis na temelju zadane funkcije.
- Numpy biblioteka se posebno koristi za nizove. Možete koristiti NumPy da dobijete indeks elementa danog na popisu.
- More_itertools.locate() je još jedna biblioteka pythona koja pomaže pronaći indekse danog popisa.