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:
- Iterator vs Iterable
- Co to są iteratory Pythona?
- Niestandardowe Iteratory
- Nieskończone iteratory
- Zatrzymanie
- Przykłady iteratorów 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.
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.