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.

Saลพmite ovu objavu uz: