Saraksts ir konteiners, kurā sakārtotā secībā tiek glabāti dažāda veida dati (inti, pludiņi, Būla, virknes utt.). Tā ir svarīga datu struktūra, kas ir iebūvēta Python. Dati tiek ierakstīti kvadrātiekavās ([]), un vērtības atdala ar komatu (,).
Sarakstā esošie vienumi tiek indeksēti, un pirmais elements sākas ar indeksu 0. Izveidotajā sarakstā varat veikt izmaiņas, pievienojot jaunus vienumus vai atjauninot, dzēšot esošos. Tam var būt arī vienumu dublikāti un ligzdots saraksts.
Sarakstā ir pieejamas daudzas metodes, un svarīgākā no tām ir indekss ().
Šajā apmācībā jūs uzzināsiet:
- Python saraksta indekss ()
- Izmantojot for-loop, lai iegūtu elementa indeksu sarakstā
- Izmantojot while-loop un list.index ()
- Saraksta izpratnes izmantošana, lai iegūtu elementa indeksu sarakstā
- Izmantojot Skaitīt, lai sarakstā iegūtu elementa indeksu
- Filtra izmantošana, lai iegūtu elementa indeksu sarakstā
- NumPy izmantošana, lai sarakstā iegūtu elementa indeksu
- Izmantojot more_itertools.locate (), lai iegūtu elementa indeksu sarakstā
Python saraksta indekss ()
Saraksta indeksa () metode palīdz atrast dotā elementa pirmo zemāko indeksu. Ja sarakstā ir dublēti elementi, tiek atgriezts pirmais elementa indekss. Tas ir vienkāršākais un vienkāršākais veids, kā iegūt indeksu.
Papildus iebūvētajai saraksta indeksa () metodei varat izmantot arī citus veidus, kā iegūt indeksu, piemēram, saraksta iziešana, izmantojot saraksta izpratni, uzskaitīšanas (), filtrēšanas metodes.
List index () metode atgriež dotā elementa pirmo zemāko indeksu.
Sintakse
list.index(element, start, end)
Parametri
Parametri | Apraksts |
elements | Elements, kuru vēlaties iegūt indeksā. |
sākt | Šis parametrs nav obligāts. Lai meklētu elementu, varat definēt start: index. Ja tas nav norādīts, noklusējuma vērtība ir 0. |
beigas | Šis parametrs nav obligāts. Varat norādīt meklējamā elementa beigu indeksu. Ja tas nav norādīts, tas tiek izskatīts līdz saraksta beigām. |
Atgriešanās vērtība
List index () metode atgriež dotā elementa indeksu. Ja elementa sarakstā nav, metode index () radīs kļūdu, piemēram, ValueError: 'Element' nav sarakstā.
Piemērs: Lai atrastu norādītā elementa indeksu.
Sarakstā my_list = ['A', 'B', 'C', 'D', 'E', 'F'] mēs vēlētos uzzināt elementa C un F indeksu.
Zemāk esošajā piemērā parādīts, kā iegūt indeksu.
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'))
Izeja:
The index of element C is 2The index of element F is 5
Piemērs: Sākuma un beigu izmantošana indeksā ()
Šajā piemērā mēģinās ierobežot indeksa meklēšanu sarakstā, izmantojot sākuma un beigu indeksu.
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))
Izeja:
The index of element C is 2The index of element F is 5The index of element D is 3
Piemērs: Lai pārbaudītu index () metodi ar elementu, kura nav.
Mēģinot meklēt sarakstā rādītāju elementam, kura nav, tiek parādīta kļūda, kā parādīts zemāk:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Izeja:
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
Izmantojot for-loop, lai iegūtu elementa indeksu sarakstā
Izmantojot metodi list.index (), mēs redzējām, ka tā dod elementa indeksu, kas tiek nodots kā arguments.
Tagad apsveriet sarakstu kā: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Indeksā vārds “Guru” ir 3 reizes, un es vēlos visus indeksus ar nosaukumu “Guru”.
Izmantojot for-loop, mums vajadzētu būt iespējai iegūt vairākus indeksus, kā parādīts zemāk esošajā piemērā.
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)
Izeja:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Izmantojot while-loop un list.index ()
Izmantojot while-loop, tiks parādīts saraksts, lai iegūtu visus norādītā elementa rādītājus.
Sarakstā: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], mums ir nepieciešami visi elementa 'Guru' rādītāji.
Zemāk sniegtajā piemērā parādīts, kā iegūt visus indeksus, izmantojot while-loop
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)
Izeja:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Saraksta izpratnes izmantošana, lai iegūtu elementa indeksu sarakstā
Lai iegūtu visus rādītājus, ātrs un vienkāršs veids ir izmantot saraksta izpratni par sarakstu.
Sarakstu izpratne ir Python funkcijas, kuras tiek izmantotas jaunu secību (piemēram, sarakstu, vārdnīcu utt.) Izveidošanai, ti, izmantojot jau izveidotas sekvences.
Tie palīdz samazināt garākas cilpas un atvieglo koda lasīšanu un uzturēšanu.
Šis piemērs parāda, kā to izdarīt:
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)
Izeja:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Izmantojot Skaitīt, lai sarakstā iegūtu elementa indeksu
Funkcija Enumerate () ir iebūvēta funkcija, kas pieejama kopā ar pitonu. Lai iegūtu visus elementa rādītājus sarakstā, varat izmantot uzskaitījumu. Tas ņem ievadi kā iterējamu objektu (ti, objektu, kuru var savienot ar cilpu), un izeja ir objekts ar skaitītāju katram objektam.
Tālāk sniegtajā piemērā parādīts, kā sarakstā izmantot sarakstu, lai iegūtu visus attiecīgā elementa rādītājus.
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'])
Izeja:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Filtra izmantošana, lai iegūtu elementa indeksu sarakstā
Filtra () metode filtrē norādīto sarakstu, pamatojoties uz doto funkciju. Katrs saraksta elements tiks nodots funkcijai, un nepieciešamie elementi tiks filtrēti, pamatojoties uz funkcijā norādīto nosacījumu.
Izmantosim metodi filter (), lai sarakstā iegūtu norādītā elementa rādītājus.
Šis piemērs parāda, kā izmantot filtru sarakstā.
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)
Izeja:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
NumPy izmantošana, lai sarakstā iegūtu elementa indeksu
NumPy bibliotēka tiek speciāli izmantota masīviem. Tātad šeit tiks izmantots NumPy, lai no norādītā saraksta iegūtu vajadzīgā elementa indeksu.
Lai izmantotu NumPy, mums tas ir jāinstalē un jāimportē.
Šeit ir norādītas darbības tam pašam:
1. solis. Instalējiet NumPy
pip install numpy
2. darbība. Importējiet NumPy moduli.
import numpy as np
3. solis. Izmantojiet np.array, lai pārvērstu sarakstu masīvā
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
4. solis. Iegūstiet vajadzīgā elementa indeksu, izmantojotnp.where ()
item_index = np.where(np_array == 'Guru')[0]
Galīgais darba kods ar izvadi ir šāds:
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)
Izeja:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Izmantojot more_itertools.locate (), lai iegūtu elementa indeksu sarakstā
More_itertools.locate () palīdz sarakstā atrast elementa rādītājus. Šis modulis darbosies ar python versiju 3.5+. Vispirms ir jāinstalē pakete more_itertools .
Tālāk ir norādītas darbības, lai instalētu un izmantotu more_itertools
1. solis. Instalējiet more_itertools, izmantojot pip (python pakotņu pārvaldnieks). Komanda ir
pip install more_itertools
2. solis. Kad instalēšana ir pabeigta, importējiet lokācijas moduli, kā parādīts zemāk
from more_itertools import locate
Tagad jūs varat izmantot lokācijas moduli sarakstā, kā parādīts zemāk piemērā:
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')))
Izeja:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Kopsavilkums:
- List index () metode palīdz atrast norādītā elementa indeksu. Tas ir vienkāršākais un vienkāršākais veids, kā iegūt indeksu.
- List index () metode atgriež dotā elementa indeksu.
- Ja sarakstā nav elementa, metode index () radīs kļūdu, piemēram, ValueError: 'Element' nav sarakstā.
- Papildus iebūvētajai saraksta metodei varat izmantot arī citus veidus, kā iegūt indeksu, piemēram, saraksta iziešana, saraksta izpratnes izmantošana, uzskaitījuma () izmantošana, filtra izmantošana utt.
- For-loop un while-loop izmantošana, lai iegūtu konkrētā elementa vairākus indeksus.
- Lai iegūtu visus rādītājus, ātrs un vienkāršs veids ir izmantot saraksta izpratni par sarakstu.
- Sarakstu izpratne ir Python funkcijas, kuras tiek izmantotas jaunu secību izveidošanai.
- Tie palīdz samazināt garākas cilpas un atvieglo koda lasīšanu un uzturēšanu.
- Lai iegūtu visus elementa rādītājus sarakstā, varat izmantot uzskaitījumu.
- Funkcija Enumerate () ir iebūvēta funkcija, kas pieejama kopā ar pitonu. Tas ņem ievadi kā iterējamu objektu (ti, objektu, kuru var savienot ar cilpu), un izeja ir objekts ar skaitītāju katram objektam.
- Filtra () metode filtrē norādīto sarakstu, pamatojoties uz doto funkciju.
- Numpy bibliotēka tiek speciāli izmantota masīviem. Lai iegūtu sarakstā norādītā elementa indeksu, varat izmantot NumPy.
- More_itertools.locate () ir vēl viena pitona bibliotēka, kas palīdz atrast norādītā saraksta rādītājus.