Python Iterators: Mikä on Iterator Pythonissa ja miten sitä käytetään?



Tässä Python-iteraattoreiden blogissa teemme perusteellisen tutkimuksen Pythonin iteraattoreista ja niiden toteutuksesta.

Python-ohjelmointikieli on skaalannut kaikki innovaation osa-alueet, mukaan lukien , , jne. Yksi monista syistä tälle esitykselle on käsitteet, kuten Python Iterators, tällaiset käsitteet ovat Pythonin voiton ohjelmointikielenä rakennusosat. Tässä artikkelissa käymme läpi seuraavat käsitteet ymmärtääksemme Python Iterators:

Iteraattorit vs Iterable

Pythonissa olevaa objektia, jota voidaan käyttää Iterable-objektina, kutsutaan Iterable-nimeksi. Tämä tarkoittaa pohjimmiltaan, että objektin sekvenssi voidaan toistaa. Suurin osa Python-kokoelmista kuten a lista , , kaksinkertainen , sarjat , ja jopa alue voidaan pitää iteroitavana.





Mitä ovat Python-iteraattorit?

Python I teraattori on säilö, joka sisältää lukemattoman määrän arvoja. Säiliön arvot voidaan kulkea iteraattoreiden avulla - etenkin luetteloiden avulla.

Läpikäynnin lisäksi iteraattorit antavat pääsyn myös säilön tietoelementteihin, mutta eivät itse toimiiterointits. ei ilman mitään merkittävää vapautta, joka on otettu kyseisen käsitteen tai terminologian triviaalin käytön kanssa. Iteraattori on melkein samanlainen kuin atietokannan kohdistinkäyttäytymisessä. Tässä on yksinkertainen esimerkki Iteratorista .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) tulosta (seuraava (iter_obj))

Tuotos: Edureka

Iterator on mitä tahansa Python-tyyppiä, jota voidaan käyttää 'for in loop' -toiminnon kanssa.Jokaisen objektin, jota käytetään iteraattorina, on toteutettava seuraavat menetelmät.

iteraattorit pythonissa - edureka



1. __iter __ ()

Sitä kutsutaan iteraattorin alustamiseen.Sen pitäisi palauttaa objekti, jolla on seuraava tai __sext__ -menetelmä.

2. __seuraava __ ()

Iteratorin seuraava menetelmä palauttaa Iterable-arvon seuraavan arvon.

Kun iteraattoria käytetään ‘for in’ -silmukan kanssa, seuraava () kutsutaan implisiittisesti Iterator-objektissa. Tämän menetelmän tulisi käyttää StopIteration-signaalia iteraation lopusta.Näitä kahta menetelmää kutsutaan yhdessä Iterator-protokollaksi. Yritetään esimerkin avulla ymmärtää, kuinka for-silmukka toimii Iteratorina Pythonissa.

i objektille: tulosta (i)

Olkaamme ymmärrettävä, miten silmukka toimii iteraattorina.

# luo iteraattoriobjekti iteroitavasta iter_obj = iter (iterable) # ääretön silmukka kun True: yritä: # hanki seuraava elementti = next (iter_obj) # tee jotain elementillä paitsi StopIteration: # tauko

Nyt kun tiedämme, miten silmukalle toimii iteraattorina. Kerro meille, kuinka voimme toteuttaa mukautettuja iteraattoreita Pythonissa.

Mukautetut iteraattorit

Katsotaan nyt, kuinka voimme toteuttaa mukautettuja iteraattoreita Pythonissa. Tämän ymmärtämiseksi käytämme esimerkkiä. Tässä esimerkissä toteutetaan __iter __ () ja __next __ () -menetelmät.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __sext __ (self): x = self.a self.a + = 1 return x myclass = Omat numerot () myiter = iter (myclass) tulosta (seuraava ( myiter)) print (seuraava (myiter)) print (seuraava (myiter))

Tuotos: yksi

2

3

Nyt kun tiedämme, miten voimme toteuttaa mukautettuja iteraattoreita, katsokaamme Pythonin loputtomia iteraattoreita.

Äärettömät iteraattorit

Ei ole aina pakollista, että Iterator-objektin kohteen on tyhjennettävä. Iteraattoreita voi olla ääretön (joka ei koskaan pääty). Tässä on perusesimerkki loputtomien iteraattorien osoittamiseksi.

Sisäänrakennettu iter ()voidaan kutsua kahdella argumentilla, joissa ensimmäisen argumentin on oltava objekti (funktio), joka voidaan kutsua, ja toinen on sentinel. Iterator kutsuu tätä toimintoa, kunnes palautetusta arvosta tulee yhtä suuri kuin vartija.

Otetaan esimerkki tämän ymmärtämiseksi

class MyNumbers: def __iter __ (self): self.a = 1 return self def __sext __ (self): x = self.a self.a + = 1 return x myclass = Omat numerot () myiter = iter (myclass) tulosta (seuraava ( myiter)) print (seuraava (myiter)) print (seuraava (myiter)) print (seuraava (myiter)) print (seuraava (myiter))

Tuotos: yksi
2
3
4
5

Yllä olevassa esimerkissä suoritus jatkuu niin kauan kuin jatkamme tulostuslausekkeen lisäämistä. Lopettamattomien iteraattoreiden pysäyttämiseksi meidän on käytettävä stopIteration-käskyä.

kurkku java-seleeni-verkko-ohjaimen esimerkki

StopIteration

Estämme iteraation jatkumisen ikuisesti käyttämällä StopIteration-käskyä. Ymmärretään tämä muutamalla esimerkillä.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __sext __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: korota StopIteration myclass = Omat numerot () myiter = iter (myclass) x: lle myiterissä: tulosta (x)

Tuotos: yksi
2
3
4
5

Nyt heti kun ehto on väärä, suoritus siirtyy toiseen lohkoon ja iteraatio loppuu. Katsotaanpa nyt muutamia muita esimerkkejä Iteratorista Pythonissa.

Python Iterator -esimerkkejä

Tässä on muutama esimerkki Pythonin iteraattoreista.

my_obj = ['Edureka', 'python', 'iteraattori'] iter_obj = iter (my_obj) tulosta (seuraava (iter_obj))

Tuotos: Edureka

Tässä esimerkissä käytämme tuplea iteroitavana objektina.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) tulosta (seuraava (iter_obj))

Tuotos: Edureka

Voimme jopa käyttää merkkijonoa iteroitavana objektina pythonissa.

my_obj = 'Edureka' iter_obj = iter (my_obj) tulosta (seuraava (iter_obj))

Tuotos: ON

Tämä tuo meidät tämän artikkelin loppuun, jossa olemme oppineet käyttämään esimerkkejä Python-iteraattoreista. Toivon, että olet selvillä kaikesta, mitä sinulle on jaettu tässä opetusohjelmassa.

Jos löysit tämän artikkelin aiheesta 'Python Iterators', tutustu luotettava verkko-oppimisyritys, jolla on yli 250 000 tyytyväisen oppijan verkosto, levinneenä ympäri maailmaa.

Autamme sinua matkan jokaisessa vaiheessa ja keksimme opetussuunnitelman, joka on suunniteltu opiskelijoille ja ammattilaisille, jotka haluavat olla . Kurssi on suunniteltu antamaan sinulle etumatka Python-ohjelmointiin ja kouluttamaan sinua sekä ydin- että edistyneille Python-käsitteille yhdessä muiden kanssa Kuten

Jos kohtaat kysymyksiä, voit kysyä kaikki kysymyksesi Python Iterators -kommenttiosasta. Tiimimme vastaa mielellään.