Python Iterators: Mi az Iterator a Pythonban, és hogyan kell használni?



Ebben a Python-iterátorokról szóló blogban mélyreható tanulmányt fogunk készíteni a Python-ban szereplő iterátorokról és azok végrehajtásáról.

A Python programozási nyelv az innováció minden aspektusát skálázta, beleértve a , , stb. Ennek a bravúrnak a sok oka az olyan fogalmak, mint a Python Iterators, az ilyen fogalmak a Python mint programozási nyelv diadalának építőkövei. Ebben a cikkben a következő fogalmakat vesszük át a Python Iterators megértése érdekében:

Iterátorok vs Iterable

Egy objektumot a Pythonban, amelyet iterálható objektumként lehet használni, iterálhatónak nevezzük. Ez alapvetően azt jelenti, hogy az objektumban lévő szekvencia megismételhető. A Python-gyűjtemények többségének tetszik a lista , , tuple , készletek , sőt még hatótávolság iterable-ként kezelhető.





Mik azok a Python-iterátorok?

Egy Python I terátor egy megszámlálható számú értéket tartalmazó tároló. A konténerben lévő értékeket az Iterátorok - különösen a listák - segítségével lehet bejárni.

Az áthaladáson kívül az Iterators hozzáférést biztosít a konténer adatelemeihez is, de maga nem teljesítismétlésazaz anélkül, hogy a koncepcióval vagy a terminológia jelentéktelen használatával bizonyos jelentős szabadságot vennének. Az Iterator szinte hasonlít aadatbázis kurzora viselkedésben. Itt van egy egyszerű példa az Iteratorra .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (következő (iter_obj))

Kimenet: Edureka

Az Iterator bármilyen típusú Python, amelyet a „for in loop” -val lehet használni.Bármely objektumnak, amelyet iterátorként kell használni, a következő módszereket kell végrehajtania.

iterátorok a pythonban - edureka



1. __iter __ ()

Az iterátor inicializálására hívják fel.Vissza kell adnia egy objektumot, amelynek van egy következő vagy __next__ metódusa.

2. __ következő __ ()

Az Iterator következő módszere az Iterable következő értékét adja vissza.

Ha egy itterátort használnak „for in” hurokkal, akkor a következőt () implicit módon meghívja az Iterator objektumon. Ennek a módszernek StopIterationt kell használnia az iteráció végének jelzésére.Ezt a két módszert együttesen Iterator protokollnak nevezzük. Próbáljuk meg megérteni, hogy egy for for ciklus hogyan működik Iteratorként a Pythonban egy példával.

i-re objektumban: print (i)

Értsük meg, hogy a ciklus hogyan működik iterátorként.

# iterátorobjektum létrehozása abból az iterálható iter_obj = iter (iterable) # végtelen ciklusból, míg True: próbáld ki: # szerezd be a következő elem elemet = next (iter_obj) # csinálj valamit az StopIteration kivételével: # ha a StopIteration fel van emelve, szakíts a hurokról szünet

Most, hogy tudjuk, hogyan hurokhoz iterátorként működik. Tisztázzuk, miként valósíthatjuk meg az egyedi iterátorokat a Pythonban.

Egyedi iterátorok

Most vessünk egy pillantást arra, hogy miként valósíthatjuk meg az egyedi iterátorokat a Pythonban. Ennek megértéséhez használunk egy példát. Ebben a példában a __iter __ () és a __next __ () metódust valósítjuk meg.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = Saját számok () myiter = iter (myclass) nyomtatás (következő ( myiter)) print (következő (myiter)) print (következő (myiter))

Kimenet: egy

2

3

Most, hogy tudjuk, hogyan tudjuk megvalósítani az egyedi iterátorokat, vessünk egy pillantást a Python végtelen iterátoraira.

Végtelen iterátorok

Nem mindig kötelező, hogy az Iterator objektum elemének kimerüljön. Végtelen Iterátorok lehetnek (amelyek soha nem érnek véget). Itt van egy alap példa a végtelen iterátorok bemutatására.

A beépített iter ()két argumentummal hívható meg, ahol az első argumentumnak objektumnak (függvénynek) kell lennie, amelyet meghívhatunk, másodiknak pedig az őrszemét. Az Iterator addig hívja ezt a függvényt, amíg a visszaadott érték nem lesz egyenlő az őrszemével.

Vegyünk egy példát ennek megértésére

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = Saját számok () myiter = iter (myclass) nyomtatás (következő ( myiter)) print (következő (myiter)) print (következő (myiter)) print (következő (myiter)) print (következő (myiter))

Kimenet: egy
2
3
4
5.

A fenti példában a végrehajtás mindaddig folytatódik, amíg folyamatosan hozzáadjuk a nyomtatási utasítást. A végtelen iterátorok leállításához a stopIteration utasítást kell használnunk.

java kód a mysql-hez való csatlakozáshoz

StopIteration

Annak megakadályozására, hogy egy iteráció örökké tartson, a StopIteration utasítást használjuk. Értsük meg ezt néhány példával.

class MyNumbers: 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: raise StopIteration myclass = Saját számok () myiter = iter (myclass) x-re a myiter-ben: print (x)

Kimenet: egy
2
3
4
5.

Most, amint a feltétel hamis, a végrehajtás a másik blokkra kerül, és az Iteráció leáll. Most nézzünk meg néhány más példát az Iteratorokról a Pythonban.

Python Iterator Példák

Íme még néhány példa az Iteratorokra a Pythonban.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (következő (iter_obj))

Kimenet: Edureka

Ebben a példában a duplát használjuk iterálható objektumként.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (következő (iter_obj))

Kimenet: Edureka

A stringet akár iterálható objektumként is használhatjuk a pythonban.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (következő (iter_obj))

Kimenet: IS

Ezzel a cikk végére jutunk, ahol példákkal megtudhatjuk, hogyan használjuk a Python Iteratorokat. Remélem tisztában van mindazzal, amit megosztott veled ebben az oktatóanyagban.

Ha relevánsnak találta ezt a cikket a „Python Iterators” témában, nézze meg egy megbízható online tanulási vállalat, amelynek több mint 250 000 elégedett tanulóból álló hálózata van az egész világon.

Azért vagyunk itt, hogy segítsünk az utazás minden lépésében, és kidolgozzunk egy tananyagot, amelyet olyan hallgatók és szakemberek számára tervezünk, akik szeretnének . A tanfolyamot úgy tervezték meg, hogy előrelépést nyújtson a Python programozásában, és kiképezze mind az alapvető, mind a haladó Python-koncepciókra a különféle megoldásokkal együtt tetszik

Ha bármilyen kérdéssel találkozik, nyugodtan tegye fel minden kérdését a „Python Iterators” megjegyzés szakaszában. Csapatunk örömmel válaszol.