Python Iterátory: Čo je to Iterátor v Pythone a ako ho používať?



V tomto blogu o iterátoroch Pythonu urobíme hĺbkovú štúdiu o Iterátoroch v Pythone a o tom, ako sú implementované.

Programovací jazyk Python zmenšil každý aspekt inovácie vrátane , , , atď. Jedným z mnohých dôvodov tohto výkonu sú koncepty ako Python Iterators, koncepty ako tieto sú základnými kameňmi triumfu Pythonu ako programovacieho jazyka. V tomto článku si vysvetlíme nasledujúce koncepty, aby sme porozumeli iterátorom jazyka Python:

Iterátory vs Iterovateľné

Objekt v Pythone, ktorý možno použiť ako Iterovateľný objekt, sa nazýva Iterovateľný. To v podstate znamená, že je možné iterovať postupnosť v objekte. Väčšina zbierok Pythonu ako a zoznam , , násobný , sady , a dokonca rozsah možno považovať za Iterovateľný.





Čo sú to iterátory Pythonu?

Pytón I terátor je kontajner obsahujúci spočítateľný počet hodnôt. Hodnotami v kontajneri je možné prechádzať pomocou iterátorov - najmä zoznamov.

Okrem prechádzania Iterátory tiež poskytujú prístup k dátovým prvkom v kontajneri, ale sám osebe nevykonávaiteráciatj. nie bez značnej slobody, ktorá sa berie s týmto konceptom alebo s triviálnym použitím terminológie. Iterátor je takmer podobný ako akurzor databázyv správaní. Tu je jednoduchý príklad Iterátora v .



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

Výkon: Edureka

Iterátor je akýkoľvek typ Pythonu, ktorý sa dá použiť s cyklom „in in loop“.Akýkoľvek objekt, ktorý sa má použiť ako iterátor, musí implementovať nasledujúce metódy.

iterátory v pythone - edureka



1. __iter __ ()

Volá sa pri inicializácii iterátora.Mal by vrátiť objekt, ktorý má nasledujúcu alebo __next__ metódu.

2. __ďalšie __ ()

Iteratorova ďalšia metóda vráti ďalšiu hodnotu pre Iterable.

Keď sa Iterátor používa so slučkou „for in“, implicitne sa volá next () na objekte Iterator. Táto metóda by mala používať StopIteration na signalizáciu konca iterácie.Spoločne sa tieto dve metódy nazývajú Iterátorský protokol. Pokúsme sa na príklade pochopiť, ako slučka for funguje v jazyku Python ako Iterátor.

pre i v objekte: print (i)

Poďme pochopiť, ako cyklus for funguje ako iterátor.

# vytvorte iteračný objekt z tejto iterovateľnej iter_obj = iter (iterovateľnej) # nekonečnej slučky, zatiaľ čo je pravda: skúste: # získajte ďalšiu položku element = next (iter_obj) # urobte niečo s elementom okrem StopIteration: # ak je StopIteration zvýšený, prerušte smyčku prestávka

Teraz, keď vieme, ako pre slučku pracuje ako iterátor. Poďme pochopiť, ako môžeme implementovať vlastné iterátory v Pythone.

Vlastné iterátory

Poďme sa teraz pozrieť na to, ako môžeme implementovať vlastné iterátory v Pythone. Aby sme tomu porozumeli, použijeme príklad. V tomto príklade implementujeme metódy __iter __ () a __next __ ().

trieda 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ýkon: jeden

2

3

Teraz, keď vieme, ako môžeme implementovať vlastné iterátory, sa pozrime na nekonečné iterátory v Pythone.

Nekonečné iterátory

Nie je vždy povinné, aby sa položka v objekte Iterátora musela vyčerpať. Môže existovať nekonečný počet iterátorov (ktorý nikdy nekončí). Tu je základný príklad na demonštráciu nekonečných iterátorov.

Zabudovaný iter ()je možné volať s dvoma argumentmi, kde prvý argument musí byť objekt (funkcia), ktorý je možné volať, a druhý je sentinel. Iterátor volá túto funkciu, kým sa vrátená hodnota nestane rovnakou ako sentinel.

Vezmime si príklad, aby sme tomu porozumeli

trieda 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ýkon: jeden
2
3
4
5

V uvedenom príklade bude vykonávanie pokračovať tak dlho, ako dlho budeme pridávať príkaz na tlač. Ak chcete zastaviť nekonečné iterátory, musíme použiť príkaz stopIteration.

vyhľadávacia transformácia v príklade informatica

StopIterácia

Aby sme zabránili tomu, aby iterácia pokračovala navždy, použijeme príkaz StopIteration. Pochopme to na niekoľkých príkladoch.

trieda MyNumbers: def __iter __ (self): self.a = 1 návrat self def __next __ (self): ak self.a & ampampamplt = 5: x = self.a self.a + = 1 návrat x else: zvýšenie StopIteration myclass = moje čísla () myiter = iter (myclass) pre x v myiter: print (x)

Výkon: jeden
2
3
4
5

Teraz hneď ako podmienka je nepravdivá, vykonanie sa presunie do bloku else a iterácia sa zastaví. Teraz sa pozrime na niekoľko ďalších príkladov Iterátorov v Pythone.

Príklady iterátora Pythonu

Tu je niekoľko ďalších príkladov iterátorov v Pythone.

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

Výkon: Edureka

V tomto príklade používame n-ticu ako iterovateľný objekt.

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

Výkon: Edureka

Reťazec môžeme dokonca použiť ako iterovateľný objekt v pythone.

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

Výkon: JE

Týmto sa dostávame na koniec tohto článku, kde sme sa pomocou príkladov dozvedeli, ako používame Pythonské iterátory. Dúfam, že máte prehľad o všetkom, čo bolo s vami zdieľané v tomto tutoriále.

Ak sa vám zdá tento článok o „Pythonových iterátoroch“ relevantný, pozrite si ho dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete.

Sme tu, aby sme vám pomohli na každom kroku na vašej ceste a prišli s učebným plánom, ktorý je určený pre študentov a profesionálov, ktorí chcú byť . Kurz je navrhnutý tak, aby vám dal náskok v programovaní v Pythone a naučil vás základné aj pokročilé koncepty Pythonu spolu s rôznymi Páči sa mi to

Ak narazíte na akékoľvek otázky, neváhajte sa ich opýtať v sekcii komentárov „Pythonových iterátorov“. Náš tím rád odpovie.