Seznam je vsebnik, ki v urejenem zaporedju hrani elemente različnih podatkovnih vrst (ints, floats, Boolean, nizi itd.). To je pomembna podatkovna struktura, ki je vgrajena v Python. Podatki so zapisani v oglatih oklepajih ([]), vrednosti pa so ločene z vejico (,).
Elementi na seznamu se indeksirajo s prvim elementom, ki se začne z indeksom 0. Na ustvarjenem seznamu lahko spreminjate tako, da dodate nove elemente ali posodobite ali izbrišete obstoječe. Lahko ima tudi podvojene elemente in ugnezdeni seznam.
Na seznamu je na voljo veliko načinov, pomemben pa je indeks ().
V tej vadnici boste izvedeli:
- Kazalo seznama Python ()
- Uporaba for-loop za pridobivanje indeksa elementa na seznamu
- Uporaba while-loop in list.index ()
- Uporaba razumevanja seznama za pridobitev indeksa elementa na seznamu
- Uporaba Enumerate za pridobitev indeksa elementa na seznamu
- Uporaba filtra za pridobivanje indeksa elementa na seznamu
- Uporaba NumPy za pridobitev indeksa elementa na seznamu
- Uporaba more_itertools.locate () za pridobitev indeksa elementa na seznamu
Kazalo seznama Python ()
Metoda seznama () vam pomaga najti prvi najnižji indeks danega elementa. Če so na seznamu podvojeni elementi, se vrne prvi indeks elementa. To je najlažji in najpreprostejši način za pridobitev indeksa.
Poleg vgrajene metode indeksa seznama () lahko uporabite tudi druge načine, da indeks dobite, kot je prelistavanje seznama, z uporabo metod razumevanja seznama, enumerate () in filtriranja.
Metoda list index () vrne prvi najnižji indeks danega elementa.
Sintaksa
list.index(element, start, end)
Parametri
Parametri | Opis |
element | Element, za katerega želite dobiti indeks. |
začetek | Ta parameter ni obvezen. Za iskanje elementa lahko določite indeks start:. Če ni podana, je privzeta vrednost 0. |
konec | Ta parameter ni obvezen. Za element, ki ga želite iskati, lahko določite končni indeks. Če ni dana, se upošteva do konca seznama. |
Vrnjena vrednost
Metoda list index () vrne indeks danega elementa. Če elementa ni na seznamu, bo metoda index () vrgla napako, na primer ValueError: 'Elementa' ni na seznamu.
Primer: poiskati indeks danega elementa.
Na seznamu my_list = ['A', 'B', 'C', 'D', 'E', 'F'] bi radi vedeli indeks za elemente C in F.
Spodnji primer prikazuje, kako dobiti indeks.
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'))
Izhod:
The index of element C is 2The index of element F is 5
Primer: Uporaba začetka in konca v indeksu ()
V tem primeru bomo poskušali omejiti iskanje indeksa na seznamu z uporabo začetnega in končnega 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))
Izhod:
The index of element C is 2The index of element F is 5The index of element D is 3
Primer: Preizkusite metodo index () z elementom, ki ni prisoten.
Ko poskusite iskati indeks na seznamu za element, ki ni prisoten, boste dobili napako, kot je prikazano spodaj:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Izhod:
Traceback (most recent call last):File "display.py", line 3, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
Uporaba for-loop za pridobivanje indeksa elementa na seznamu
Pri metodi list.index () smo videli, da daje indeks elementa, ki je poslan kot argument.
Zdaj upoštevajte seznam kot: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Ime "Guru" je v indeksu prisotno trikrat in želim vse indekse z imenom "Guru".
Z uporabo for-loop bi lahko dobili več indeksov, kot je prikazano v spodnjem primeru.
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)
Izhod:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Uporaba while-loop in list.index ()
Z uporabo zanke while se bo vrtel skozi navedeni seznam, da bo dobil vse indekse danega elementa.
Na seznamu: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], potrebujemo vse indekse elementa "Guru".
Spodaj je naveden primer, kako dobimo vse indekse z uporabo while-zanke
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)
Izhod:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Uporaba razumevanja seznama za pridobitev indeksa elementa na seznamu
Če želite dobiti vse indekse, je hiter in enostaven način uporaba razumevanja seznama na seznamu.
Razumevanja seznamov so funkcije Pythona, ki se uporabljajo za ustvarjanje novih zaporedij (kot so seznami, slovarji itd.), Tj. Z uporabo že ustvarjenih zaporedij.
Pomagajo zmanjšati daljše zanke in olajšajo branje in vzdrževanje kode.
Naslednji primer prikazuje, kako to storiti:
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)
Izhod:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Uporaba Enumerate za pridobitev indeksa elementa na seznamu
Funkcija Enumerate () je vgrajena funkcija, ki je na voljo s pythonom. Uporabite lahko enumerate, da dobite vse indekse elementa na seznamu. Vhod upošteva kot iterable objekt (tj. Predmet, ki ga je mogoče zanko), izhod pa je objekt s števcem za vsak element.
Naslednji primer prikazuje, kako uporabiti enumerate na seznamu, da dobite vse indekse za dani 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'])
Izhod:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Uporaba filtra za pridobivanje indeksa elementa na seznamu
Metoda filter () filtrira dani seznam na podlagi dane funkcije. Vsak element seznama bo posredovan funkciji, potrebni elementi pa bodo filtrirani glede na pogoj iz funkcije.
Uporabimo metodo filter (), da dobimo indekse za dani element na seznamu.
Naslednji primer prikazuje, kako uporabiti filter na seznamu.
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)
Izhod:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Uporaba NumPy za pridobitev indeksa elementa na seznamu
Knjižnica NumPy je posebej uporabljena za polja. Torej, tukaj bomo uporabili NumPy, da dobimo indeks elementa, ki ga potrebujemo s podanega seznama.
Če želite uporabiti NumPy, ga moramo namestiti in uvoziti.
Tu so koraki za isto:
Korak 1) Namestite NumPy
pip install numpy
Korak 2) Uvozite modul NumPy.
import numpy as np
Korak 3) Za pretvorbo seznama v matriko uporabite np.array
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Korak 4) Pridobite indeks želenega elementa z uporabo np.where ()
item_index = np.where(np_array == 'Guru')[0]
Končna delovna koda z izhodom je naslednja:
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)
Izhod:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Uporaba more_itertools.locate () za pridobitev indeksa elementa na seznamu
More_itertools.locate () pomaga najti indekse elementa na seznamu. Ta modul bo deloval z različico python 3.5+. Najprej je treba namestiti paket more_itertools , da ga izkoristite.
Sledijo koraki za namestitev in uporabo more_itertools
1. korak: Namestite more_itertools z uporabo pip (upravitelj paketov python). Ukaz je
pip install more_itertools
Korak 2) Ko je namestitev končana, uvozite modul za iskanje, kot je prikazano spodaj
from more_itertools import locate
Zdaj lahko uporabite modul locate na seznamu, kot je prikazano spodaj v primeru:
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')))
Izhod:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Povzetek:
- Metoda seznama index () vam pomaga najti indeks danega elementa. To je najlažji in najpreprostejši način za pridobitev indeksa.
- Metoda list index () vrne indeks danega elementa.
- Če elementa ni na seznamu, bo metoda index () vrgla napako, na primer ValueError: 'Elementa' ni na seznamu.
- Poleg vgrajene metode seznama lahko uporabite tudi druge načine za pridobivanje indeksa, kot je zanka po seznamu, uporaba razumevanja seznama, uporaba enumerate (), uporaba filtra itd.
- Uporaba for-loop in while-loop za pridobivanje več indeksov danega elementa.
- Če želite dobiti vse indekse, je hiter in enostaven način uporaba razumevanja seznama na seznamu.
- Razumevanja seznamov so funkcije Pythona, ki se uporabljajo za ustvarjanje novih zaporedij.
- Pomagajo zmanjšati daljše zanke in olajšajo branje in vzdrževanje kode.
- Uporabite lahko enumerate, da dobite vse indekse elementa na seznamu.
- Funkcija Enumerate () je vgrajena funkcija, ki je na voljo s pythonom. Vhod upošteva kot iterable objekt (tj. Predmet, ki ga je mogoče zanko), izhod pa je objekt s števcem za vsak element.
- Metoda filter () filtrira dani seznam na podlagi dane funkcije.
- Knjižnica Numpy se posebej uporablja za polja. NumPy lahko uporabite za pridobitev indeksa elementa, navedenega na seznamu.
- More_itertools.locate () je še ena knjižnica pythona, ki pomaga najti indekse navedenega seznama.