Iteratory Pythona: Co to jest Iterator w Pythonie i jak go używać?



Na tym blogu poświęconym iteratorom Pythona przeprowadzimy dogłębne badanie dotyczące iteratorów w Pythonie i ich implementacji.

Język programowania Python skalował każdy aspekt innowacji, w tym , , itp. Jednym z wielu powodów tego wyczynu są koncepcje takie jak Iteratory Pythona, takie pojęcia są elementami składowymi triumfu Pythona jako języka programowania. W tym artykule omówimy następujące koncepcje, aby zrozumieć iteratory Pythona:

Iteratory a Iterowalne

Obiekt w Pythonie, który może być używany jako obiekt iterowalny, nazywany jest Iterowalnym. Zasadniczo oznacza to, że sekwencja w obiekcie może być iterowana. Większość kolekcji Pythona, takich jak lista , , krotka , zestawy , i nawet zasięg można traktować jako iterowalny.





Co to są iteratory Pythona?

Python I terator to kontener zawierający policzalną liczbę wartości. Wartości w kontenerze można przechodzić za pomocą Iteratorów - szczególnie list.

Poza przemierzaniem, Iteratory dają również dostęp do elementów danych w kontenerze, ale same nie działająiteracjatj. nie bez pewnej znaczącej swobody związanej z tym pojęciem lub z trywialnym użyciem terminologii. Iterator jest prawie podobny dokursor bazy danychw zachowaniu. Oto prosty przykład Iteratora w .



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

Wynik: Edureka

Iterator to dowolny typ języka Python, którego można używać z pętlą „for in”.Każdy obiekt, który ma być używany jako Iterator, musi implementować następujące metody.

iteratory w Pythonie - edureka



1. __iter __ ()

Nazywa się to inicjalizacją Iteratora.Powinien zwrócić obiekt, który ma metodę next lub __next__.

2. __next __ ()

Metoda next iteratora zwraca następną wartość dla iterowalnej.

Gdy Iterator jest używany z pętlą „for in”, metoda next () jest niejawnie wywoływana przez na obiekcie Iterator. Ta metoda powinna używać StopIteration, aby zasygnalizować koniec iteracji.Te dwie metody razem nazywane są protokołem iteratora. Spróbujmy na przykładzie zrozumieć, jak pętla for działa jako iterator w Pythonie.

for i in object: print (i)

Zrozummy, jak pętla for działa jako iterator.

# utwórz obiekt iteratora z tego iterowalnego iter_obj = iter (iterowalny) # nieskończona pętla while True: try: # pobierz następny element element = next (iter_obj) # zrób coś z elementem oprócz StopIteration: # jeśli StopIteration zostanie podniesiony, przerwij pętlę przerwa

Teraz, gdy wiemy, jak plik dla pętli działa jako Iterator. Zrozummy, jak możemy zaimplementować niestandardowe Iteratory w Pythonie.

Niestandardowe Iteratory

Przyjrzyjmy się teraz, jak możemy zaimplementować niestandardowe iteratory w Pythonie. Aby to zrozumieć, posłużymy się przykładem. W tym przykładzie zaimplementujemy metody __iter __ () i __next __ ().

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

Wynik: jeden

2

3

Teraz, gdy wiemy, jak możemy zaimplementować niestandardowe Iteratory, przyjrzyjmy się nieskończonym Iteratorom w Pythonie.

Nieskończone iteratory

Nie zawsze jest wymagane, aby element w obiekcie Iterator musiał się wyczerpać. Mogą istnieć nieskończone Iteratory (które nigdy się nie kończą). Oto podstawowy przykład pokazujący nieskończone iteratory.

Wbudowany iter ()można wywołać z dwoma argumentami, przy czym pierwszy argument musi być obiektem (funkcją), który można wywołać, a drugim jest wartownik. Iterator wywołuje tę funkcję, aż zwrócona wartość stanie się równa wartownikowi.

Weźmy przykład, aby to zrozumieć

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

Wynik: jeden
2
3
4
5

W powyższym przykładzie wykonanie będzie trwało tak długo, jak długo będziemy dodawać instrukcję print. Aby zatrzymać nieskończone Iteratory, musimy użyć instrukcji stopIteration.

jak używać operatorów bitowych w java

Zatrzymanie

Aby zatrzymać ciągłą iterację w nieskończoność, używamy instrukcji StopIteration. Zrozummy to na kilku przykładach.

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 = MyNumbers () myiter = iter (myclass) for x in myiter: print (x)

Wynik: jeden
2
3
4
5

Teraz, gdy tylko Warunek jest fałszywy, wykonanie przejdzie do bloku else i iteracja zostanie zatrzymana. Spójrzmy teraz na kilka innych przykładów iteratorów w Pythonie.

Przykłady iteratorów Pythona

Oto kilka innych przykładów iteratorów w Pythonie.

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

Wynik: Edureka

W tym przykładzie używamy krotki jako iterowalnego obiektu.

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

Wynik: Edureka

Możemy nawet użyć łańcucha jako iterowalnego obiektu w Pythonie.

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

Wynik: JEST

To prowadzi nas do końca tego artykułu, w którym dowiedzieliśmy się, jak używamy Iteratorów Pythona z przykładami. Mam nadzieję, że wszystko, co zostało Ci udostępnione w tym samouczku, jest dla Ciebie jasne.

Jeśli uważasz, że ten artykuł o „Iteratorach Pythona” jest odpowiedni, sprawdź zaufana firma zajmująca się edukacją online z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.

Jesteśmy tutaj, aby pomóc Ci na każdym kroku w Twojej podróży i opracować program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą być . Kurs ma na celu zapewnienie przewagi w programowaniu w Pythonie i przeszkolenie zarówno podstawowych, jak i zaawansowanych koncepcji Pythona, a także różnych lubić

Jeśli napotkasz jakieś pytania, nie krępuj się zadawać je w sekcji komentarzy w „Iteratorach Pythona”. Nasz zespół z przyjemnością odpowie.