Python Iterators: Ano ang Iterator sa Python at paano ito magagamit?



Sa blog na ito sa Python iterators, magsasagawa kami ng isang malalim na pag-aaral sa Iterators sa Python at paano ito ipinatupad.

Ang wika ng programa ng Python ay na-scale ang bawat aspeto ng pagbabago kasama ang , , , atbp. Isa sa maraming mga kadahilanan para sa gawaing ito ay ang mga konsepto tulad ng Python Iterators, ang mga konseptong tulad nito ay ang mga bloke ng tagumpay ng Python bilang isang wika sa programa. Sa artikulong ito, dadaan kami sa mga sumusunod na konsepto upang maunawaan ang Python Iterators:

Iterators vs Iterable

Ang isang bagay sa Python, na maaaring magamit bilang isang Iterable na bagay ay tinatawag na Iterable. Ito ay nangangahulugang ang pagkakasunud-sunod ng bagay ay maaaring paulit-ulitin. Karamihan sa mga koleksyon ng Python tulad ng a listahan , , tuple , set , at kahit na saklaw maaaring tratuhin bilang isang Iterable.





Ano ang Mga Python Iterator?

Isang Python I terator ay isang lalagyan na naglalaman ng isang mabibilang na bilang ng mga halaga. Ang mga halaga sa isang lalagyan ay maaaring daanan gamit ang Iterators - partikular ang mga listahan.

Bukod sa traversal, nagbibigay din ang Iterators ng pag-access sa mga elemento ng data sa isang lalagyan ngunit hindi ito gumaganap mismopag-ulitibig sabihin, hindi nang walang ilang makabuluhang kalayaan na kinuha sa konseptong iyon o sa walang gaanong paggamit ng terminolohiya. Ang isang Iterator ay halos kapareho ng acursor sa databasesa pag-uugali. Narito ang isang simpleng halimbawa ng Iterator sa .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (susunod (iter_obj))

Output: Edureka

Ang Iterator ay anumang uri ng Python na maaaring magamit sa isang 'for in loop'.Ang anumang bagay na gagamitin bilang isang Iterator ay dapat ipatupad ang mga sumusunod na pamamaraan.

mga iterator sa sawa - edureka



1. __iter __ ()

Ito ay tinatawag sa pagsisimula ng isang Iterator.Dapat itong ibalik ang isang bagay na mayroong isang susunod o __susunod na pamamaraan.

2. __susunod __ ()

Ang susunod na pamamaraan ng Iterator ay nagbabalik ng susunod na halaga para sa Iterable.

Kapag ginamit ang isang Iterator na may loop na 'for in', ang susunod () ay implicit na tinawag ni sa bagay na Iterator. Ang pamamaraang ito ay dapat gumamit ng isang StopIteration upang ipahiwatig ang pagtatapos ng pag-ulit.Sama-sama ang dalawang pamamaraang ito ay tinatawag na Iterator Protocol. Subukan nating maunawaan kung paano gumaganap ang isang para sa loop bilang isang Iterator sa Python na may isang halimbawa.

para sa i sa object: i-print (i)

Ipaalam sa amin na maunawaan kung paano gumagana ang loop bilang isang Iterator.

# Lumikha ng isang bagay na iterator mula sa umuulit na iter_obj = iter (iterable) # walang katapusang loop habang Totoo: subukan: # makuha ang susunod na elemento ng item = susunod (iter_obj) # Gumawa ng isang bagay na may elemento maliban sa StopIteration: # kung ang Itinatayong itataas, huminto mula sa loop pahinga

Ngayong alam na natin, paano ang para sa loop gumagana bilang isang Iterator. Ipaunawa sa amin kung paano namin maipapatupad ang mga pasadyang Iterator sa Python.

Pasadyang Iterator

Tingnan natin ngayon kung paano natin maipapatupad ang mga pasadyang Iterator sa Python. Upang maunawaan ito, gagamit kami ng isang halimbawa. Sa halimbawang ito, ipapatupad namin ang mga __iter __ () at __susunod __ () na mga pamamaraan.

class MyNumber: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumber () myiter = iter (myclass) print (susunod ( myiter)) print (susunod (myiter)) print (susunod (myiter))

Output: isa

2

3

Ngayong alam na natin kung paano natin maipapatupad ang mga pasadyang Iterator, tingnan natin ang mga walang katapusang Iterator sa Python.

Walang katapusang Iterator

Hindi laging sapilitan na ang item sa isang bagay na Iterator ay kailangang maubos. Maaaring may mga walang katapusang Iterator (na hindi magtatapos). Narito ang isang pangunahing halimbawa upang maipakita ang walang katapusang mga iterator.

Ang built-in na iter ()maaaring tawagan ng dalawang mga argumento kung saan ang unang argumento ay dapat na isang object (function) na maaaring tawagan at pangalawa ang sentinel. Tinatawag ng Iterator ang pagpapaandar na ito hanggang sa ang naibalik na halaga ay magiging pantay sa sentinel.

Gumawa tayo ng isang halimbawa upang maunawaan ito

class MyNumber: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumber () myiter = iter (myclass) print (susunod ( myiter)) print (susunod (myiter)) print (susunod (myiter)) print (susunod (myiter)) print (susunod (myiter))

Output: isa
2
3
4
5

Sa halimbawa sa itaas, magpapatuloy ang pagpapatupad hangga't patuloy naming idaragdag ang pahayag na naka-print. Upang ihinto ang walang katapusang Iterator, kailangan nating gamitin ang pahayag na stopIteration.

tutorial sa sas program para sa mga nagsisimula

StopIteration

Upang matigil ang isang Iteration na magpatuloy magpakailanman, ginagamit namin ang pahayag na StopIteration. Ipaunawa sa amin ito sa ilang mga halimbawa.

class MyNumber: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: itaas ang StopIteration myclass = MyNumber () myiter = iter (myclass) para sa x sa myiter: print (x)

Output: isa
2
3
4
5

Ngayon sa lalong madaling panahon ang ang kondisyon ay hindi totoo, ang pagpapatupad ay lilipat sa ibang bloke at ang Iteration ay titigil. Tingnan natin ngayon ang ilang iba pang mga halimbawa ng Iterators sa Python.

Mga Halimbawa ng Python Iterator

Narito ang ilang iba pang mga halimbawa ng Iterators sa Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (susunod (iter_obj))

Output: Edureka

Sa halimbawang ito, ginagamit namin ang tuple bilang iterable na object.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (susunod (iter_obj))

Output: Edureka

Maaari din naming gamitin ang string bilang isang umuulit na bagay sa sawa.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (susunod (iter_obj))

Output: AY

Dinadala tayo nito sa pagtatapos ng artikulong ito kung saan natutunan namin kung paano namin ginagamit ang Python Iterators na may mga halimbawa. Inaasahan kong malinaw ka sa lahat ng naibahagi sa iyo sa tutorial na ito.

Kung nakita mo ang artikulong ito sa 'Python Iterators' na may kaugnayan, suriin isang pinagkakatiwalaang kumpanya sa online na pag-aaral na may isang network ng higit sa 250,000 nasiyahan na mga nag-aaral na kumalat sa buong mundo.

Narito kami upang matulungan ka sa bawat hakbang sa iyong paglalakbay at magkaroon ng isang kurikulum na idinisenyo para sa mga mag-aaral at propesyonal na nais na maging . Ang kurso ay dinisenyo upang bigyan ka ng isang panimula sa Python program at sanayin ka para sa parehong core at advanced na mga konsepto ng Python kasama ang iba't ibang katulad

Kung may nahahanap kang anumang mga katanungan, huwag mag-atubiling itanong ang lahat ng iyong mga katanungan sa seksyon ng mga komento ng 'Python Iterators'. Ang aming koponan ay natutuwa na sagutin.