Indeks popisa Python () s primjerom

Sadržaj:

Anonim

Popis je spremnik koji u uređenom slijedu pohranjuje stavke različitih vrsta podataka (ints, floats, Boolean, stringovi itd.). To je važna struktura podataka koja je ugrađena u Python. Podaci su zapisani u uglastim zagradama ([]), a vrijednosti su odvojene zarezom (,).

Stavke na popisu indeksiraju se s prvim elementom koji započinje s indeksom 0. Na kreiranom popisu možete unijeti promjene dodavanjem novih stavki ili ažuriranjem i brisanjem postojećih. Također može imati duplicirane stavke i ugniježđeni popis.

Na popisu je dostupno mnogo metoda, a najvažnija je index ().

U ovom vodiču naučit ćete:

  • Indeks popisa Python ()
  • Korištenje for-loop za dobivanje indeksa elementa na popisu
  • Korištenje while-loop i list.index ()
  • Upotreba razumijevanja popisa za dobivanje indeksa elementa na popisu
  • Korištenje Enumerate za dobivanje indeksa elementa na popisu
  • Korištenje filtra za dobivanje indeksa elementa na popisu
  • Korištenje NumPy za dobivanje indeksa elementa na popisu
  • Korištenje more_itertools.locate () za dobivanje indeksa elementa na popisu

Indeks popisa Python ()

Metoda popisa indeksa () pomaže vam pronaći prvi najniži indeks datog elementa. Ako se unutar popisa nalaze duplicirani elementi, vraća se prvi indeks elementa. Ovo je najlakši i najjednostavniji način za dobivanje indeksa.

Osim ugrađene metode indeksa popisa (), možete koristiti i druge načine za dobivanje indeksa, poput pregledavanja popisa, pomoću metoda poimanja popisa, enumerate (), filtriranja.

Metoda popisa index () vraća prvi najniži indeks datog elementa.

Sintaksa

list.index(element, start, end)

Parametri

Parametri Opis
element Element koji želite dobiti indeks.
početak Ovaj parametar nije obavezan. Možete definirati indeks start: za traženje elementa. Ako se ne navede, zadana vrijednost je 0.
kraj Ovaj parametar nije obavezan. Možete odrediti indeks kraja za element koji se traži. Ako se ne da, razmatra se do kraja popisa.

Povratna vrijednost

Metoda liste index () vraća indeks datog elementa. Ako element nije prisutan na popisu, metoda index () izbacit će pogrešku, na primjer, ValueError: 'Element' nije na popisu.

Primjer: Za pronalaženje indeksa datog elementa.

Na 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 2The index of element F is 5

Primjer: Korištenje početka i završetka u indeksu ()

U ovom primjeru pokušat ćemo ograničiti traženje 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 startindexprint("The index of element D is ", my_list.index('D', 1))

Izlaz:

The index of element C is 2The index of element F is 5The index of element D is 3

Primjer: Testiranje metode index () s elementom koji nije prisutan.

Kada pokušate potraž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 print("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list

Korištenje for-loop za dobivanje indeksa elementa na popisu

Kod metode list.index () vidjeli smo da daje indeks elementa koji se prosljeđuje kao argument.

Sada razmotrite popis kao: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Ime 'Guru' prisutno je tri puta u indeksu, a ja želim da svi indeksi budu s imenom 'Guru'.

Koristeći for-loop trebali bismo 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-loop i list.index ()

Korištenje while petlje petljat će se kroz navedeni popis kako bi se dobili svi indeksi datog elementa.

Na popisu: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], trebaju nam svi indeksi elementa "Guru".

Ispod je dan primjer koji pokazuje kako dobiti sve indekse pomoću while-petlje

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)

Izlaz:

OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]

Upotreba 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.

Poimanja popisa su Python funkcije koje se koriste za stvaranje novih sekvenci (poput popisa, rječnika itd.), Tj. Pomoću sekvenci koje su već stvorene.

Pomažu u smanjenju dužih petlji i olakšavaju čitanje i održavanje vašeg koda.

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 biste dobili sve indekse elementa na popisu. Ulaz uzima ulazni objekt (tj. Objekt koji se može petljati), a izlaz je objekt s brojačem svake stavke.

Sljedeći primjer pokazuje kako koristiti enumerate na popisu da biste dobili sve indekse za zadani 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 proslijedit će se funkciji, a potrebni elementi filtrirat će se na temelju uvjeta danih u funkciji.

Upotrijebimo metodu filter () za dobivanje indeksa za zadani 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 knjižnica posebno se koristi za nizove. Dakle, ovdje ćemo koristiti NumPy za dobivanje indeksa elementa koji nam treba s navedenog 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) Iskoristite 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, koristeći np.where ()

item_index = np.where(np_array == 'Guru')[0]

Konačni radni kod s izlazom je sljedeći:

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)

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 će modul raditi s python verzijom 3.5+. Prvo ga treba instalirati paket more_itertools da biste ga iskoristili.

Slijede koraci za instaliranje i korištenje more_itertools

Korak1) Instalirajte more_itertools pomoću pipa (upravitelj paketa python). Naredba je

pip install more_itertools

Korak 2) Kada je instalacija gotova, uvezite modul za pronalaženje kao što je prikazano dolje

from more_itertools import locate

Sada možete koristiti modul locate na popisu kao što je prikazano dolje u primjeru:

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')))

Izlaz:

Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]

Sažetak:

  • Metoda liste index () pomaže vam pronaći indeks datog elementa. Ovo je najlakši i najjednostavniji način za dobivanje indeksa.
  • Metoda liste index () vraća indeks datog 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, možete koristiti i druge načine za dobivanje indeksa poput pregledavanja popisa, korištenja popisa, korištenja enumerate (), korištenja filtra itd.
  • Upotreba for-loop i while-loop za dobivanje višestrukih indeksa datog elementa.
  • Da biste dobili sve indekse, brz i jednostavan način je korištenje razumijevanja popisa na popisu.
  • Poimanja popisa su Python funkcije koje se koriste za stvaranje novih sekvenci.
  • Pomažu u smanjenju dužih petlji i olakšavaju čitanje i održavanje vašeg koda.
  • Možete koristiti enumerate da biste dobili sve indekse elementa na popisu.
  • Funkcija Enumerate () je ugrađena funkcija dostupna s pythonom. Ulaz uzima ulazni objekt (tj. Objekt koji se može petljati), a izlaz je objekt s brojačem svake stavke.
  • Metoda filter () filtrira zadani popis na temelju zadane funkcije.
  • Numpy knjižnica posebno se koristi za nizove. NumPy možete koristiti za dobivanje indeksa elementa navedenog na popisu.
  • More_itertools.locate () je još jedna python biblioteka koja pomaže pronaći indekse datog popisa.