Python Iterátory: Co je Iterátor v Pythonu a jak jej používat?



V tomto blogu o iterátorech Pythonu provedeme hloubkovou studii o iterátorech v Pythonu a o tom, jak jsou implementovány.

Programovací jazyk Python změnil každý aspekt inovace včetně , , atd. Jedním z mnoha důvodů pro tento čin jsou koncepty jako Python Iterators, koncepty jako tyto jsou stavebními kameny Pythonova triumfu jako programovacího jazyka. V tomto článku projdeme následující koncepty, abychom porozuměli Pythonovým iterátorům:

Iterátoři vs Iterabilní

Objekt v Pythonu, který lze použít jako Iterable objekt, se nazývá Iterable. To v podstatě znamená, že posloupnost v objektu může být iterována. Většina sbírek Pythonu jako a seznam , , n-tice , sady , a dokonce rozsah lze považovat za Iterable.





Co jsou iterátoři Pythonu?

Python I. terátor je kontejner obsahující spočetný počet hodnot. Hodnoty v kontejneru lze procházet pomocí iterátorů - zejména seznamů.

Kromě průchodu poskytuje Iterator také přístup k datovým prvkům v kontejneru, ale sám o sobě nefungujeopakovánítj. ne bez určité významné svobody přijaté s tímto konceptem nebo s triviálním použitím terminologie. Iterátor je téměř podobný akurzor databázev chování. Zde je jednoduchý příklad Iterátoru v .



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

Výstup: Edureka

Iterátor je jakýkoli typ Pythonu, který lze použít se smyčkou „for in“.Jakýkoli objekt, který má být použit jako Iterátor, musí implementovat následující metody.

iterátory v pythonu - edureka



1. __iter __ ()

Vyvolává se při inicializaci iterátoru.Mělo by vrátit objekt, který má metodu next nebo __next__.

2. __další __ ()

Iteratorova další metoda vrátí další hodnotu pro Iterable.

Když se Iterátor používá se smyčkou „for in“, implicitně se volá next () na objektu Iterator. Tato metoda by měla použít StopIteration k signalizaci konce iterace.Společně se tyto dvě metody nazývají Iterátorský protokol. Pokusme se na příkladu pochopit, jak smyčka for funguje jako Iterátor v Pythonu.

pro i v objektu: print (i)

Pojďme pochopit, jak smyčka funguje jako iterátor.

# vytvořte iterátorový objekt z této iterovatelné iter_obj = iter (iterovatelné) # nekonečná smyčka, zatímco True: try: # získejte další položku element = next (iter_obj) # udělejte něco s elementem kromě StopIteration: # pokud je StopIteration zvednutá, přerušte smyčku přestávka

Teď, když víme, jak pro smyčku pracuje jako iterátor. Pojďme pochopit, jak můžeme implementovat vlastní Iterátory v Pythonu.

Vlastní iterátoři

Nyní se podívejme na to, jak můžeme implementovat vlastní Iterátory v Pythonu. Abychom tomu porozuměli, použijeme příklad. V tomto příkladu implementujeme metody __iter __ () a __next __ ().

třída MyNumbers: def __iter __ (self): self.a = 1 návrat self def __next __ (self): x = self.a self.a + = 1 návrat x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

Výstup: jeden

2

3

Nyní, když víme, jak můžeme implementovat vlastní iterátory, pojďme se podívat na nekonečné iterátory v Pythonu.

Nekonečné iterátory

Není vždy povinné, aby se položka v objektu Iterator musela vyčerpat. Mohou existovat nekonečné iterátory (které nikdy nekončí). Zde je základní příklad pro demonstraci nekonečných iterátorů.

Integrovaný iter ()lze volat se dvěma argumenty, přičemž prvním argumentem musí být objekt (funkce), který lze volat, a druhým je sentinel. Iterátor volá tuto funkci, dokud se vrácená hodnota nestane stejnou jako sentinel.

Vezměme si příklad, abychom tomu porozuměli

třída MyNumbers: def __iter __ (self): self.a = 1 návrat self def __next __ (self): x = self.a self.a + = 1 návrat x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Výstup: jeden
2
3
4
5

Ve výše uvedeném příkladu bude provádění pokračovat tak dlouho, dokud budeme přidávat tiskový příkaz. Chcete-li zastavit nekonečné iterátory, musíme použít příkaz stopIteration.

programování soketu v java příkladu

StopIterace

Abychom zabránili tomu, aby iterace pokračovala navždy, použijeme příkaz StopIteration. Pochopme to na několika příkladech.

třída MyNumbers: def __iter __ (self): self.a = 1 návrat self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 návrat x else: zvýšit StopIteration myclass = MyNumbers () myiter = iter (myclass) pro x v myiter: print (x)

Výstup: jeden
2
3
4
5

Teď, jakmile podmínka je false, provedení se přesune do bloku else a iterace se zastaví. Nyní se podívejme na několik dalších příkladů Iterátorů v Pythonu.

Příklady iterátoru Pythonu

Zde je několik dalších příkladů iterátorů v Pythonu.

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

Výstup: Edureka

V tomto příkladu používáme n-tici jako iterovatelný objekt.

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

Výstup: Edureka

Můžeme dokonce použít řetězec jako iterovatelný objekt v pythonu.

my_obj = 'Edureka' iter_obj = iter (my_obj) tisk (další (iter_obj))

Výstup: JE

Tím se dostáváme na konec tohoto článku, kde jsme se naučili, jak používáme Python Iterátory s příklady. Doufám, že máte jasno se vším, co bylo s vámi v tomto tutoriálu sdíleno.

Pokud shledáte tento článek o „Pythonových iterátorech“ relevantní, podívejte se důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě.

Jsme tu, abychom vám pomohli s každým krokem na vaší cestě a vytvořili osnovy určené pro studenty a profesionály, kteří chtějí být . Kurz je navržen tak, aby vám poskytl náskok v programování v Pythonu a naučil vás základní i pokročilé koncepty Pythonu spolu s různými jako

Pokud narazíte na jakékoli otázky, neváhejte se zeptat na všechny své dotazy v sekci komentářů v „Pythonových iterátorech“. Náš tým rád odpoví.