Loend on konteiner, kuhu salvestatakse erinevat tüüpi andmet (üksused, ujukid, tõeväärtus, stringid jne) järjestatud järjestuses. See on oluline andmestruktuur, mis on sisseehitatud Pythonis. Andmed kirjutatakse nurksulgudesse ([]) ja väärtused eraldatakse komaga (,).
Loendis olevad üksused indekseeritakse esimese elemendiga, mis algab indeksist 0. Loodud loendis saate muudatusi teha, lisades uusi üksusi või värskendades ja kustutades olemasolevaid. Sellel võib olla ka duplikaatüksusi ja pesastatud loend.
Loendis on palju meetodeid ja olulisim neist on indeks ().
Selles õpetuses saate teada:
- Pythoni loendi register ()
- For-loopi kasutamine loendis oleva elemendi indeksi saamiseks
- While-loopi ja list.index () kasutamine
- Loendi mõistmise kasutamine loendi elemendi indeksi saamiseks
- Loendi elemendi loendi saamiseks loendit kasutades
- Filtri kasutamine loendis oleva elemendi indeksi saamiseks
- NumPy kasutamine loendi elemendi indeksi saamiseks
- Kasutades more_itertools.locate () elementi loendi loendi saamiseks
Pythoni loendi register ()
Loendindeksi () meetod aitab teil leida antud elemendi esimese madalaima indeksi. Kui loendis on duplikaatelemente, tagastatakse elemendi esimene register. See on lihtsaim ja otsene viis indeksi saamiseks.
Lisaks sisseehitatud loendiindeksi () meetodile saate indeksi hankimiseks kasutada ka muid võimalusi, näiteks loendi loopimine, kasutades loendi mõistmist, loendamist (), filtrimeetodeid.
List index () meetod tagastab antud elemendi esimese madalaima indeksi.
Süntaks
list.index(element, start, end)
Parameetrid
Parameetrid | Kirjeldus |
element | Element, mida soovite indeksi hankida. |
algus | See parameeter on valikuline. Elemendi otsimiseks saate määratleda start: index. Kui seda pole antud, on vaikeväärtus 0. |
lõpp | See parameeter on valikuline. Saate määrata otsitava elemendi lõpuindeksi. Kui seda ei anta, arvestatakse seda loendi lõpuni. |
Tagastusväärtus
List index () meetod tagastab antud elemendi indeksi. Kui elementi loendis pole, viskab meetod index () vea, näiteks ValueError: 'Elementi' pole loendis.
Näide: antud elemendi indeksi leidmiseks.
Loendis my_list = ['A', 'B', 'C', 'D', 'E', 'F'] soovime teada elementide C ja F indeksit.
Allpool toodud näide näitab, kuidas indeksit saada.
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'))
Väljund:
The index of element C is 2The index of element F is 5
Näide: alguse ja lõpu kasutamine indeksis ()
Selles näites püütakse piirata loendi indeksi otsimist algus- ja lõpuindeksi abil.
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))
Väljund:
The index of element C is 2The index of element F is 5The index of element D is 3
Näide: Indeksi () meetodi testimiseks elemendiga, mida pole olemas.
Kui proovite loendis indeksi otsida elementi, mida pole olemas, kuvatakse tõrge, nagu allpool näidatud:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Väljund:
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
For-loopi kasutamine loendis oleva elemendi indeksi saamiseks
Meetodiga list.index () oleme näinud, et see annab argumendina edastatud elemendi indeksi.
Nüüd arvestage loendiga: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Nimi 'Guru' on indeksis 3 korda ja ma soovin kõiki indeksit nimega 'Guru'.
For-loopi abil peaksime saama mitu indeksit, nagu on näidatud allpool toodud näites.
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)
Väljund:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
While-loopi ja list.index () kasutamine
While-loopi abil liigutakse antud loendis kõigi antud elemendi indeksite saamiseks.
Loendis: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], vajame elemendi 'Guru' kõiki indekse.
Allpool on toodud näide, kuidas kõik indeksid saada while-loopi abil
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)
Väljund:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Loendi mõistmise kasutamine loendi elemendi indeksi saamiseks
Kõigi indeksite saamiseks on kiire ja arusaadav viis kasutada loendis mõistmist loendis.
Loendi mõistmine on Pythoni funktsioon, mida kasutatakse uute jadade (näiteks loendite, sõnastike jms) loomiseks, st juba loodud järjestuste kasutamiseks.
Need aitavad vähendada pikemaid tsükleid ning muudavad teie koodi hõlpsamini loetavaks ja hooldatavaks.
Järgmine näide näitab, kuidas seda teha:
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)
Väljund:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Loendi elemendi loendi saamiseks loendit kasutades
Funktsioon Enumerate () on sisseehitatud funktsioon, mis on saadaval pythoniga. Elemendi kõigi indeksite loendisse saamiseks võite kasutada loendit. See võtab sisendit itereeritava objektina (st objektina, mida saab tsükliga tõsta) ja väljundiks on objekt, millel on iga üksuse loendur.
Järgmine näide näitab, kuidas loendis loendit kasutada, et saada antud elemendi kõik indeksid.
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'])
Väljund:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Filtri kasutamine loendis oleva elemendi indeksi saamiseks
Filter () meetod filtreerib antud loendi antud funktsiooni põhjal. Iga loendi element edastatakse funktsioonile ja vajalikud elemendid filtreeritakse vastavalt funktsioonis antud tingimusele.
Kasutame loendis antud elemendi indeksite saamiseks filtrit ().
Järgmine näide näitab, kuidas loendis filtrit kasutada.
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)
Väljund:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
NumPy kasutamine loendi elemendi indeksi saamiseks
NumPy teeki kasutatakse spetsiaalselt massiivide jaoks. Nii et siin saab NumPy kasutada vajaliku elemendi indeksi saamiseks antud loendist.
NumPy kasutamiseks peame selle installima ja importima.
Siin on samad sammud:
Samm 1) Installige NumPy
pip install numpy
2. samm. Importige moodul NumPy.
import numpy as np
Samm 3) Loendi massiiviks teisendamiseks kasutage np.array
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
4. samm. Hankige soovitud elemendi register, kasutades np.where ()
item_index = np.where(np_array == 'Guru')[0]
Lõplik väljundkood on järgmine:
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)
Väljund:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Kasutades more_itertools.locate () elementi loendi loendi saamiseks
More_itertools.locate () aitab loendis leida elemendi indeksid. See moodul töötab pythoni versiooniga 3.5+. Selle kasutamiseks tuleb kõigepealt installida pakett more_itertools .
Järgnevad juhised more_itertools'i installimiseks ja kasutamiseks
Samm1 ) Installige rohkem_itertools pipi abil (pythoni paketihaldur). Käsk on
pip install more_itertools
Samm 2) Kui installimine on lõpetatud, importige asukoha moodul, nagu allpool näidatud
from more_itertools import locate
Nüüd saate kasutada loendis asuvat moodulit, nagu näites näidatud allpool:
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')))
Väljund:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Kokkuvõte:
- Loendi indeks () meetod aitab teil leida antud elemendi indeksi. See on lihtsaim ja otsene viis indeksi saamiseks.
- List index () meetod tagastab antud elemendi indeksi.
- Kui loendis elementi pole, loob meetod index () vea, näiteks ValueError: 'Elementi pole loendis.
- Lisaks sisseehitatud loendimeetodile saate indeksi saamiseks kasutada ka muid viise, näiteks loendi kaudu liikumist, loendi mõistmist, loendit (), filtri kasutamist jne.
- Antud elemendi mitme indeksi saamiseks for-loop ja while-loop.
- Kõigi indeksite saamiseks on kiire ja arusaadav viis kasutada loendis mõistmist loendis.
- Loendi mõistmine on Pythoni funktsioon, mida kasutatakse uute järjestuste loomiseks.
- Need aitavad vähendada pikemaid tsükleid ning muudavad teie koodi hõlpsamini loetavaks ja hooldatavaks.
- Elemendi kõigi indeksite loendisse saamiseks võite kasutada loendit.
- Funktsioon Enumerate () on sisseehitatud funktsioon, mis on saadaval pythoniga. See võtab sisendit itereeritava objektina (st objektina, mida saab tsükliga tõsta) ja väljundiks on objekt, millel on iga üksuse loendur.
- Filter () meetod filtreerib antud loendi antud funktsiooni põhjal.
- Numpy raamatukogu kasutatakse spetsiaalselt massiivide jaoks. Loendis toodud elemendi indeksi saamiseks võite kasutada NumPyt.
- More_itertools.locate () on järjekordne pythoni teek, mis aitab leida antud loendi indeksid.