Metody iteratora
Każdy obiekt iterator zawiera następujące dwie metody.
Ta metoda służy do inicjowania obiektu iterowalnego. Zwracany obiekt ma metodę '_ _Następny_ _()„W Python 3.
Ta metoda zwraca następną wartość iterabilnego obiektu. Związek między iteratorem a obiektem iterowalnym jest pokazany na poniższym schemacie.
Iteracyjne z pętlami
Wspomniano wcześniej, że 'Do`` Pętla woła ''Następny()„Metoda domyślnie podczas iterowania dowolnego iteracyjnego obiektu. Gdy do iteracji obiektu używa się pętli, „Do`` Pętla woła ''Następny()„Metoda domyślnie i”chwila`` Pętla woła ''Następny()' Lub '__Następny__()„Metoda jawna do odczytania następnej wartości obiektu iterowalnego. Oba rodzaje pętli nadal nazywają tę metodę do czasuPrzerwanie„Sygnał jest generowany.
Przykład 1: Iteracyjne iteracyjne obiekty z pętlą „for”
Poniższy skrypt pokazuje użycie 'Do„Pętle za iterowanie pięciu różnych obiektów iteracyjnych. Pierwszy 'Do„Pętla służy do iteracji wartości łańcucha i wydrukowania każdego znaku łańcucha w każdej iteracji. Drugi 'Do„Pętla służy do iteracji zawartości istniejącego pliku tekstowego i wydrukowania każdej wierszy pliku w każdej iteracji. Trzeci 'Do„Pętla jest używana do iteracji wartości krotki. Czwarty 'Do„Pętla jest używana do iteracji wartości zawartych na liście. Piąty 'Do„Pętla jest używana do iteracji wartości zawartych w słowniku.
# Iterowanie łańcucha za pomocą pętliWyjście
Poniższe dane wyjściowe pokazuje, że znaki wartości ciągu; linie test.tekst plik; a elementy krotek, listy i słownika są drukowane po uruchomieniu skryptu.
Przykład 2: Iteracyjne listy z pętlą „While”
Poniższy skrypt pokazuje użycie a 'chwila„Pętla do iteracji listy danych. Tutaj 'iter ()„Metoda służy do inicjalizacji obiektu iterowalnego i”Następny()„Metoda jest używana do odczytania następnej wartości obiektu iterowalnego. Przerwanie Sygnał służy do zakończenia z nieskończoności 'chwila' Pętla, gdy nie pozostawiono żadnej pozycji listy do odczytania.
# Zdefiniuj listęWyjście
Poniższe dane wyjściowe pokazuje, że każda wartość listy została wydrukowana w każdym wierszu za pomocą 'Następny()„Metoda po uruchomieniu skryptu.
Przykład 3: Iterowanie krotki z „__Next __ ()„ metodą i ”, podczas gdy„ pętla
W poniższym skrypcie oba 'Następny()' I '__Następny__()„Metody są stosowane do iteracji wartości krotki. ''iter ()„Metoda jest używana do utworzenia iterowalnego obiektu, nazwanego”init_iter.' Tutaj 'Następny()„Metoda jest nazywana dwukrotnie do wydrukowania dwóch pierwszych wartości krotki. Następnie nieskończonychwila„Pętla jest używana do iteracji pozostałych wartości krotki i”Przerwanie„Sygnał służy do zakończenia z pętli, jak w poprzednim przykładzie.
# Zdefiniuj krotkęWyjście
Poniższe dane wyjściowe pokazuje, że po uruchomieniu skryptu pierwsze dwie wartości ”Ptak' I 'Lew,„są drukowane z”Następny()„Metoda, podczas gdy pozostałe trzy wartości”Małpa,"Wąż,' I 'Słoń,„są drukowane z”__Następny__()' metoda.
Iteracja z niestandardowym iteratorem
Ta sekcja pokazuje, w jaki sposób można wdrożyć różne typy iteratorów niestandardowych, tworząc klasy. Oboje '__iter __ ()„I”__Następny__()„Metody zostaną zaimplementowane w klasie i”chwila„Pętla zostanie użyta do iteracji wartości obiektu iterowalnego. Następna część tego artykułu pokaże również, jak utworzyć nieskończony niestandardowy iterator i kontrolować iterację.
Przykład 4: Korzystanie z prostego niestandardowego iteratora
Poniższy skrypt pozwala obliczyć wartość XN Korzystając z niestandardowego iteratora bez użycia wbudowanej funkcji Pythona. Klasa nazwana 'x_to_the_power_n'jest zadeklarowane w skrypcie. ''__w tym__()„Metoda klasy zainicjuje wartości X I N które będą używane w momencie tworzenia obiektów. ''__iter __ ()„Metoda zainicjuje zmienną klasową, która będzie przechowywać”wynik„Zmienna obliczeń w każdej iteracji. Wartości X I N zostanie uznane za dane wejściowe od użytkownika. Obiekt klasy 'liczby'jest tworzony z X I N. Następnie wymieniony obiekt iterabalny „ITER_OBJ„jest tworzony, aby nazwać”__Następny__()„Metoda n-1 razy za pomocą 'chwila„pętla do obliczenia wartości XN. W każdej iteracji wartość X zostanie pomnożony przez poprzednią wartość 'wynik' zmienny. Po zakończeniu ''chwila`` Pętla, ''__Następny__()„Metoda zostanie ponownie wywołana, aby wydrukować wartość XN.
„Utwórz klasę, aby obliczyćWyjście
Pokazuje to następujące dane wyjściowe 2 jest traktowany jako wartość X I 4 jest traktowany jako wartość N. Więc skrypt obliczył wartość 24 być 16.
Przykład 5: Użycie nieskończonego iteratora niestandardowego
Poniższy skrypt będzie ciągle drukuje liczby, które są podzielne przez 5 z opóźnieniem jednej sekundy, dopóki użytkownik nie naciśnie Ctrl + c Aby wygenerować 'Klawiatura' sygnał. Nieskończoność 'chwila„Pętla jest używana tutaj do utworzenia nieskończonego niestandardowego iteratora. ''czas„Moduł jest importowany na początku skryptu, aby używać”spać()„Metoda opóźnienia każdego wyjścia o sekundę. Numer 5 jest inicjowany do 'num„zmienna jako pierwsza podzielna liczba w skrypcie, a następna liczba jest generowana przez dodanie 5 z poprzednią wartością”num' zmienny.
# Moduł czasu importuWyjście
Poniższe dane wyjściowe pokazuje, że liczba zaczęła drukować z 5 i ciągle drukowała następne liczby po drugiej z jednym sekundowym czasem trwania. Kiedy użytkownik naciskał Ctrl + c Po wydrukowaniu numeru 60, wiadomość 'Ctrl+C jest wciśnięty.„Został wydrukowany, zanim zakończył skrypt.
Przykład 6: Kontrolowanie niestandardowego nieskończonego iteratora
Poniższy skrypt pokazuje, jak zatrzymać niestandardowy nieskończony iterator po wypełnieniu określonej liczby iteracji. ''__iter __ ()„Metoda klasy zainicjuje wartości”N' I 'wynik„Zmienne klasowe. Skrypt obliczy kwadraty liczb, zaczynając od 1, które są przechowywane w zmiennej N, i wydrukuj wartość kwadratową N aż do wartości N jest większy niż 5. Nieskończona, gdy pętla jest tutaj ogłoszona, aby nazwać '__Następny__()„Metoda do wydrukowania wartości kwadratowej N. Kiedy wartość N osiąga 6, ''Przerwanie„Sygnał wygeneruje, aby zakończyć pętlę.
# Moduł czasu importuWyjście
Poniższe wyjście pokazuje, że nieskończony niestandardowy iterator został zakończony, gdy wartość n stała się większa niż 5. Skrypt obliczony i wydrukował wartości kwadratowe wartości liczby od 1 do 5.
Iteracyjne z itertoolami
Python ma wbudowany moduł o nazwie 'IterTools„Można użyć do utworzenia iteratora do iteracji danych za pomocą pętli. Następna sekcja tego artykułu pokazuje, jak używać trzech funkcji w tym module.
IterTools.liczyć()
„Itertools.cd„Funkcja może być używana z”mapa()„Metoda generowania danych sekwencyjnych i z”zamek błyskawiczny()„Metoda dodawania sekwencji za pomocą parametru liczby tej metody. Składnia tej funkcji podano poniżej.
Składnia
IterTools.Count (start = 0, krok = 1)Tutaj pierwszy parametr ”początek,„służy do zdefiniowania wartości początkowej sekwencji i 0 jest domyślną wartością tego parametru. Drugi parametr ”krok,„służy do ustalenia różnicy między kolejnymi liczbami i 1 jest domyślną wartością tego parametru.
Przykład 7: Użycie funkcji iTerTools
Następujący skrypt obliczy sumę z 0 Do N liczby, gdzie wartość N zostanie zabrany od użytkownika. ''liczyć()„Funkcja jest importowana z”IterTools„Na początku skryptu. ''my_iterator„Obiekt jest inicjowany z”liczyć()„Funkcja, z”początek„Wartość 0 i A”krok„Wartość 1. Następnie ''sum_result„Zmienna jest inicjowana przez pierwszą wartość obiektu iterowalnego. Wartość początkowa jest inicjowana do zmiennej I a numer początkowy jest przechowywany jako znak w zmiennej, liczby, które zostaną użyte do łączenia innych liczb w każdej iteracji. Wartości liczb sekwencyjnych zostaną dodane w każdej iteracji, gdy 'Następny()„Metoda jest wywoływana. Kiedy wartość I staje się większy niż N, Skrypt zakończy się wyświetlaniem wyniku sumy.
„Oblicz następujący skryptWyjście
Poniższe dane wyjściowe pokazuje, że liczba 10 jest traktowany jako wejście używane do zakończenia pętli po uruchomieniu skryptu. W tym wyjściu skrypt obliczył sumę od 0 do 10 i wydrukował wyjście, 0+1+2+3+4+5+6+7+8+9+10 = 55.
IterTools.cykl()
Ta funkcja zawiera tylko jeden argument, który może być dowolnym obiektem. Celem tej funkcji jest powtórzenie wartości obiektu po zakończeniu iteracji wszystkich wartości. Tutaj, struny, krotki, listy itp. może być używane jako obiekt. Zwracania obiektów iterowalnych tych funkcji są używane do iterowania każdej wartości obiektu, który będzie używany jako argument za pomocą 'Następny()' metoda. Liczba liczby iternowanych wartości obiektu iterowalnego będzie oparta na liczbie iteracji pętli. Składnia tej funkcji podano poniżej.
Składnia
IterTools.cykl (obiekt)Przykład 8: Zastosowanie funkcji itertools
''losowy' I 'IterTools„Moduły są importowane na początku skryptu, aby wygenerować liczbę losową i używać”cykl()„Funkcja z”IterTools„Moduł powtarzania danych. Lista trzech liczb losowych jest używana jako argumentcykl()„Funkcja. Imienny obiekt nazwany 'num_list'jest inicjowany przez wartość zwracaną tej funkcji. ''liczyć„zmienna jest inicjowana do 0, a kiedy wartość tej zmiennej staje się 6, ''chwila„Pętla zakończy się. Więc 'chwila„Pętla itera sześć razy, a każda wartość listy powtórzy się tylko raz.
# Importuj moduł losowyWyjście
Poniższe dane wyjściowe pokazuje, że trzy losowe liczby, 3, 17, I 185, zostały wygenerowane jako elementy listy. Pętla jest iterowana sześć razy, a te trzy wartości są powtarzane dla następnych iteracji.
IterTools.powtarzać()
Funkcja „powtórz ()” działa jak nieskończony iterator i może wziąć dwa argumenty. Po pominięciu drugiego argumentu funkcja „powtórz ()” działa jako nieskończony iterator i powtarza wartość nieskończoną liczbę razy. Ta funkcja nie zajmuje pamięci dla każdego powtórzenia. Po prostu tworzy zmienną jeden raz w pamięci i powtarza tę samą zmienną i nieskończoną liczbę razy, gdy tylko jeden argument jest ustawiony dla tej funkcji. Składnia tej funkcji podano poniżej.
Składnia
IterTools.Powtórz (wartość, limit)Pierwszy argument służy do przyjęcia wartości, która się powtórzy. Drugi argument jest opcjonalny i służy do ustawienia limitu powtórzeń.
Przykład 9: Użyj funkcji modułu iTerTools modułu iTerTools
''IterTools„Moduł jest importowany na początku skryptu, aby użyć”powtarzać()„Funkcja. Wartość ciągu zostanie pobrana od użytkownika do powtórzenia, a wartość liczbowa zostanie pobrana od użytkownika, aby ustawić limit powtórzeń. Wartość zwracana 'powtarzać()„Funkcja zostanie następnie przekonwertowana na listę z”lista()„Metoda i przechowywana w”ListData' zmienny. Wartości ''ListData„Zostanie wydrukowany z”Do' pętla.
# Importuj moduł iTerToolsWyjście
Następujące dane wyjściowe pokazuje to 'Pyton„jest traktowany jako wartość ciągu i 3 jest traktowany jako liczba używana do powtórzenia wartości ciągu po uruchomieniu skryptu. Wyjście pokazuje, że ciąg 'Pyton„powtarza się trzy razy.
Wniosek
Pojęcie iteratora i zastosowania różnych rodzajów iteratorów w Pythonie są próbowane wyjaśnieniem bardzo prostymi przykładami w tym artykule. Użytkownicy Python mogą korzystać z wbudowanego iteratora lub utworzyć swój niestandardowy iterator na podstawie wymagań. Ten artykuł pomoże użytkownikom Python dowiedzieć się o metodach stosowanych w iteratorze i o tym. Niektóre zastosowania IterTools W tym artykule wyjaśniono również moduł Pythona, aby poznać więcej szczegółów na temat iteratora w Python.