Sąrašas yra talpykla, kurioje išdėstyti eilės tvarka skirtingų duomenų tipų elementai (intai, plūdės, Būlio, eilutės ir kt.). Tai yra svarbi duomenų struktūra, sukurta „Python“. Duomenys įrašomi laužtiniuose skliaustuose ([]), o reikšmės atskiriamos kableliais (,).
Elementai sąraše yra indeksuojami, o pirmasis elementas prasideda indeksu 0. Sukurtame sąraše galite atlikti pakeitimus pridėdami naujų elementų arba atnaujindami, ištrindami esamus. Taip pat gali būti elementų kopijos ir įdėtas sąrašas.
Sąraše yra daug metodų, iš kurių svarbiausias yra indeksas ().
Šioje pamokoje sužinosite:
- „Python“ sąrašo rodyklė ()
- Naudojant „for-loop“, norint gauti elemento indeksą sąraše
- Naudojant while-loop ir list.index ()
- Sąrašo supratimo naudojimas norint gauti elemento rodyklę sąraše
- Jei norite gauti sąrašo elemento rodyklę, naudokite „Surašyti“
- Filtro naudojimas norint gauti sąrašo elemento indeksą
- „NumPy“ naudojimas norint gauti elemento rodyklę sąraše
- Norėdami gauti elemento rodyklę sąraše, naudokite more_itertools.locate ()
„Python“ sąrašo rodyklė ()
Sąrašo indekso () metodas padeda surasti pirmąjį žemiausią nurodyto elemento indeksą. Jei sąraše yra pasikartojančių elementų, grąžinamas pirmasis elemento indeksas. Tai yra paprasčiausias ir paprastiausias būdas gauti indeksą.
Be integruoto sąrašo rodyklės () metodo, taip pat galite naudoti kitus būdus, kaip gauti indeksą, pvz., Sąrašo peržiūra, naudodami sąrašo supratimą, išvardijimą (), filtravimo metodus.
„List index“) metodas pateikia pirmąjį žemiausią nurodyto elemento indeksą.
Sintaksė
list.index(element, start, end)
Parametrai
Parametrai | apibūdinimas |
elementas | Elementas, kurį norite gauti indeksu. |
pradžia | Šis parametras neprivalomas. Norėdami apibrėžti elementą, galite apibrėžti start: index. Jei nenurodyta, numatytoji vertė yra 0. |
galas | Šis parametras neprivalomas. Galite nurodyti ieškomo elemento pabaigos indeksą. Jei jis nepateikiamas, jis laikomas iki sąrašo pabaigos. |
Grąžinimo vertė
„List index“) metodas pateikia nurodyto elemento indeksą. Jei elemento sąraše nėra, metodas index () sukels klaidą, pavyzdžiui, „ValueError“: „Elemento“ nėra sąraše.
Pavyzdys: Norėdami rasti nurodyto elemento indeksą.
Sąraše my_list = ['A', 'B', 'C', 'D', 'E', 'F'] norėtume sužinoti C ir F elementų indeksą.
Žemiau pateiktame pavyzdyje parodyta, kaip gauti 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'))
Išvestis:
The index of element C is 2The index of element F is 5
Pavyzdys: Pradžios ir pabaigos naudojimas rodyklėje ()
Šiame pavyzdyje bus bandoma apriboti indekso paiešką sąraše naudojant pradžios ir pabaigos indeksus.
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))
Išvestis:
The index of element C is 2The index of element F is 5The index of element D is 3
Pavyzdys: Norėdami patikrinti „index“) metodą su elementu, kurio nėra.
Kai bandysite sąraše ieškoti elemento, kurio nėra, sąraše gausite klaidą, kaip parodyta žemiau:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Išvestis:
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
Naudojant „for-loop“, norint gauti elemento indeksą sąraše
Taikydami metodą list.index () matėme, kad jis pateikia elemento, kuris yra perduotas kaip argumentas, indeksą.
Dabar apsvarstykite sąrašą: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Pavadinimas „Guru“ rodyklėje yra 3 kartus, ir aš noriu visų rodyklių su pavadinimu „Guru“.
Naudodami „for-loop“ turėtume sugebėti gauti kelis indeksus, kaip parodyta toliau pateiktame pavyzdyje.
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)
Išvestis:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Naudojant while-loop ir list.index ()
Naudodamiesi „loop-loop“, pereisite pateiktą sąrašą, kad gautumėte visus nurodyto elemento indeksus.
Sąraše: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], mums reikia visų elemento 'Guru' rodyklių.
Žemiau pateiktas pavyzdys rodo, kaip gauti visus indeksus naudojant „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)
Išvestis:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Sąrašo supratimo naudojimas norint gauti elemento rodyklę sąraše
Norėdami gauti visas rodykles, greitas ir paprastas būdas pasinaudoti sąrašo supratimu sąraše.
Sąrašų supratimas yra „Python“ funkcijos, kurios naudojamos kuriant naujas sekas (pvz., Sąrašus, žodynus ir kt.), Ty naudojant jau sukurtas sekas.
Jie padeda sumažinti ilgesnes kilpas ir palengvina kodo skaitymą ir priežiūrą.
Šis pavyzdys rodo, kaip tai padaryti:
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)
Išvestis:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Jei norite gauti sąrašo elemento rodyklę, naudokite „Surašyti“
Funkcija „Enumerate ()“ yra integruota funkcija, prieinama su „python“. Norėdami gauti visus elemento indeksus į sąrašą, galite naudoti išvardijimą. Tai reiškia, kad įvestis yra iteruojamas objektas (ty objektas, kuris gali būti sujungtas), o išvestis yra objektas, turintis kiekvieno elemento skaitiklį.
Toliau pateiktame pavyzdyje parodyta, kaip sąraše naudoti surašymą, norint gauti visus nurodyto elemento indeksus.
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'])
Išvestis:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Filtro naudojimas norint gauti sąrašo elemento indeksą
Filtro () metodas filtruoja pateiktą sąrašą pagal pateiktą funkciją. Kiekvienas sąrašo elementas bus perduotas funkcijai, o reikalingi elementai bus filtruojami pagal sąlygą, pateiktą funkcijoje.
Panaudokime filter () metodą, kad gautume nurodyto elemento rodykles sąraše.
Toliau pateiktame pavyzdyje parodyta, kaip naudoti filtrą sąraše.
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)
Išvestis:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
„NumPy“ naudojimas norint gauti elemento rodyklę sąraše
„NumPy“ biblioteka specialiai naudojama masyvams. Taigi čia naudosite „NumPy“, kad gautumėte reikalingo elemento indeksą iš pateikto sąrašo.
Norėdami naudotis „NumPy“, turime jį įdiegti ir importuoti.
Štai tie patys veiksmai:
1 žingsnis. Įdiekite „NumPy“
pip install numpy
2 žingsnis) Importuokite „NumPy“ modulį.
import numpy as np
3 žingsnis. Norėdami konvertuoti sąrašą į masyvą, naudokite „np.array“
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
4 žingsnis) Gaukite norimo elemento indeksą naudodaminp.where ()
item_index = np.where(np_array == 'Guru')[0]
Galutinis darbo kodas su išvestimi yra toks:
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)
Išvestis:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Norėdami gauti elemento rodyklę sąraše, naudokite more_itertools.locate ()
„More_itertools.locate ()“ padeda surasti sąrašo elemento rodykles. Šis modulis veiks su „python“ versija 3.5+. Norint juo pasinaudoti , pirmiausia reikia įdiegti paketą „ more_itertools “.
Toliau pateikiami veiksmai, kaip įdiegti ir naudoti „more_itertools“
1 žingsnis. Įdiekite more_itertools naudodami pip („python“ paketų tvarkyklę). Komanda yra
pip install more_itertools
2 žingsnis) Baigę diegti, importuokite lokacijos modulį, kaip parodyta žemiau
from more_itertools import locate
Dabar galite naudoti suradimo modulį sąraše, kaip parodyta žemiau pavyzdyje:
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')))
Išvestis:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Santrauka:
- Sąrašo indeksas () metodas padeda rasti nurodyto elemento indeksą. Tai yra paprasčiausias ir paprastiausias būdas gauti indeksą.
- „List index“) metodas pateikia nurodyto elemento indeksą.
- Jei elemento sąraše nėra, metodas index () sukels klaidą, pavyzdžiui, „ValueError“: „Elemento“ nėra sąraše.
- Be integruoto sąrašo metodo, jūs taip pat galite naudoti kitus būdus, kaip gauti indeksą, pvz., Peržvelgti sąrašą, naudoti sąrašo supratimą, naudoti „enumerate“ (), naudoti filtrą ir kt.
- Naudojant „for-loop“ ir „while-loop“, norint gauti kelis nurodyto elemento indeksus.
- Norėdami gauti visas rodykles, greitas ir paprastas būdas pasinaudoti sąrašo supratimu sąraše.
- Sąrašo supratimas yra „Python“ funkcijos, kurios naudojamos kuriant naujas sekas.
- Jie padeda sumažinti ilgesnes kilpas ir palengvina kodo skaitymą ir priežiūrą.
- Norėdami gauti visus elemento indeksus į sąrašą, galite naudoti išvardijimą.
- Funkcija „Enumerate ()“ yra integruota funkcija, prieinama su „python“. Tai reiškia, kad įvestis yra iteruojamas objektas (ty objektas, kuris gali būti sujungtas), o išvestis yra objektas, turintis kiekvieno elemento skaitiklį.
- Filtro () metodas filtruoja pateiktą sąrašą pagal pateiktą funkciją.
- „Numpy“ biblioteka specialiai naudojama masyvams. Norėdami gauti sąraše nurodyto elemento indeksą, galite pasinaudoti „NumPy“.
- „More_itertools.locate ()“ yra dar viena „python“ biblioteka, padedanti surasti pateikto sąrašo rodykles.