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 list index(), moลพete koristiti i druge naฤine za dobivanje indeksa poput looping kroz popis, koriลกtenjem popisnih razumijevanja, enumerate(), metoda 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', 'Sija', 'Tija', 'Guru', 'Dakลก', 'Rija', 'Guru'] . Ime 'Guru' se pojavljuje 3 puta u indeksu, a ลพelim sve indekse s nazivom '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', 'Sija', 'Tija', 'Guru', 'Dakลก', 'Rija', '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 liste, moลพete koristiti i druge naฤine za dobivanje indeksa poput looping kroz listu, koriลกtenjem razumjevanja liste, koriลกtenjem enumerate(), koriลกtenjem 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.
