Python Iterators: Kas ir Iterator Python un kā to izmantot?



Šajā emuārā par Python iteratoriem mēs veiksim padziļinātu pētījumu par Iteratoriem Python un kā tie tiek īstenoti.

Python programmēšanas valoda ir mērogojusi katru inovācijas aspektu, ieskaitot , , utt. Viens no daudzajiem šī varoņa iemesliem ir tādi jēdzieni kā Python Iterators, tādi jēdzieni kā Python kā programmēšanas valodas triumfa pamatelementi. Šajā rakstā mēs aplūkosim šādus jēdzienus, lai izprastu Python Iterators:

Iteratori pret Iterable

Objektu Python, ko var izmantot kā Iterable objektu, sauc par Iterable. Tas būtībā nozīmē, ka secību objektā var atkārtot. Lielākajai daļai Python kolekciju patīk a sarakstā , , dubultā , komplekti , un pat diapazons var uzskatīt par Iterable.





Kas ir Python atkārtotāji?

Python I terators ir konteiners ar neskaitāmu vērtību skaitu. Konteinerā esošās vērtības var šķērsot, izmantojot Iterators - it īpaši sarakstus.

Izņemot šķērsošanu, Iterators arī nodrošina piekļuvi konteinera datu elementiem, bet pats to nedaraatkārtojumsi., ne bez ievērojamas brīvības, kas ņemta ar šo jēdzienu, vai ar triviālu terminoloģijas izmantošanu. Iterators ir gandrīz līdzīgs adatu bāzes kursorsuzvedībā. Šeit ir vienkāršs iteratora piemērs .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) druka (nākamā (iter_obj))

Izeja: Edureka

Iterator ir jebkura veida Python, ko var izmantot ar “for in loop”.Jebkuram objektam, kas jāizmanto kā atkārtotājs, jāīsteno šādas metodes.

iteratori pitonā - edureka



1. __iter __ ()

To sauc par iteratora inicializēšanu.Tam jāatgriež objekts, kuram ir nākamā vai __next__ metode.

2. __next __ ()

Nākamā Iterator metode atgriež nākamo Iterable vērtību.

Ja Iterator tiek izmantots ar “for in” cilpu, nākamo () netieši izsauc uz objekta Iterator. Šai metodei jāizmanto StopIteration, lai norādītu atkārtojuma beigas.Šīs abas metodes kopā sauc par Iteratora protokolu. Mēģināsim ar piemēru saprast, kā for cikls darbojas kā Iterators Python.

priekš i objektā: drukāt (i)

Ļaujiet mums saprast, kā cilpa darbojas kā iterators.

# izveidojiet iteratora objektu no iterējamā iter_obj = iter (iterable) # bezgalīgā cilpa, bet True: mēģiniet: # iegūt nākamo vienuma elementu = next (iter_obj) # darīt kaut ko ar elementu, izņemot StopIteration: # ja StopIteration ir pacelts, pārtrauciet darbību pārtraukums

Tagad, kad mēs zinām, kā par cilpu strādā par Iteratoru. Ļaujiet mums saprast, kā mēs varam ieviest pielāgotus itteratorus Python.

Pielāgoti atkārtotāji

Tagad apskatīsim, kā mēs varam ieviest pielāgotus itteratorus Python. Lai to saprastu, mēs izmantosim piemēru. Šajā piemērā mēs ieviesīsim metodes __iter __ () un __next __ ().

klase MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (nākamais (myiter)) print (nākamais (myiter))

Izeja: viens

2

3

Tagad, kad mēs zinām, kā mēs varam ieviest pielāgotus itteratorus, ļaujiet mums apskatīt bezgalīgus itteratorus Python.

Bezgalīgi atkārtotāji

Ne vienmēr ir obligāti, ka Iterator objektā esošajam priekšmetam ir jāizsmeļ. Var būt bezgalīgi daudz atkārtotāju (kas nekad nebeidzas). Šeit ir pamatpiemērs bezgalīgu atkārtotāju demonstrēšanai.

Iebūvētais atkārtot ()var izsaukt ar diviem argumentiem, kur pirmajam argumentam jābūt objektam (funkcijai), kuru var izsaukt, un otrajam ir sargs. Iterator izsauc šo funkciju, līdz atgrieztā vērtība kļūst vienāda ar sargu.

Ņemsim piemēru, lai to saprastu

klase MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (nākamais (myiter)) print (nākamais (myiter)) print (nākamais (myiter)) print (nākamais (myiter))

Izeja: viens
2
3
4
5

Iepriekš minētajā piemērā izpilde turpināsies tik ilgi, kamēr mēs turpināsim pievienot drukas paziņojumu. Lai apturētu bezgalīgos atkārtotājus, mums jāizmanto stopIteration paziņojums.

jauda bi vs tablo 2016

StopIteration

Lai pārtrauktu iterācijas darbību uz visiem laikiem, mēs izmantojam StopIteration paziņojumu. Ļaujiet mums to saprast ar dažiem piemēriem.

klase Mani numuri: def __iter __ (self): self.a = 1 return self def __next __ (self): ja self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: paaugstināt StopIteration myclass = MyNumbers () myiter = iter (myclass) xiteram myiter: drukāt (x)

Izeja: viens
2
3
4
5

Tagad, tiklīdz nosacījums ir nepatiess, izpilde tiks pārvietota uz citu bloku un atkārtojums apstāsies. Tagad aplūkosim dažus citus Iteratoru piemērus Python.

Python Iterator piemēri

Šeit ir vēl daži iteratoru piemēri Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) druka (nākamā (iter_obj))

Izeja: Edureka

Šajā piemērā mēs izmantojam dupleksu kā iterējamu objektu.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (nākamais (iter_obj))

Izeja: Edureka

Mēs pat varam izmantot virkni kā atkārtojamu objektu pitonā.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (nākamais (iter_obj))

Izeja: IS

Tādējādi mēs nonākam līdz šī raksta beigām, kur mēs esam iemācījušies, kā mēs izmantojam Python Iterators ar piemēriem. Es ceru, ka jums ir skaidrs viss, kas ar jums ir kopīgots šajā apmācībā.

Ja jums šis raksts “Python Iterators” ir būtisks, pārbaudiet uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē.

Mēs esam šeit, lai palīdzētu jums ik uz soļa jūsu ceļojumā un izdomātu mācību programmu, kas paredzēta studentiem un profesionāļiem, kuri vēlas būt . Kurss ir paredzēts, lai dotu jums sākumu Python programmēšanā un apmācītu gan pamata, gan uzlabotas Python koncepcijas kopā ar dažādām patīk

Ja rodas kādi jautājumi, droši uzdodiet visus jautājumus komentāru sadaļā “Python Iterators”. Mūsu komanda ar prieku atbildēs.