[Python] Ein grobes Verständnis von Iterablen, Iteratoren und Generatoren

Ich möchte Iterable, Iterator und Generator beherrschen, aber ehrlich gesagt kann ich es nur irgendwie verstehen, deshalb habe ich es kurz zusammengefasst, damit es leicht vorstellbar ist.

Wiederholbar

Ein Objekt, das wiederholt verwendet werden kann. Objekte der Klassen list, dict, set und str sind iterierbar. Einfach ausgedrückt, was Sie mit dem *** für die Syntax *** verwenden können

Iterator

Iterable ist eine Art von iterable (iterable ist nicht unbedingt eine iterable) Einfach gesagt, es ist wie eine *** Liste *** Gibt das aktuelle Element mit next () zurück und fährt mit dem nächsten Element fort Einfach ausgedrückt *** Nehmen Sie so etwas wie eine Liste heraus, bis sie leer ist ***

Generator

Wenn die Funktion einen [Ertragsrückgabewert] enthält, wird diese Funktion als Generatorfunktion bezeichnet. Außerdem wird die Notation der Listeneinschlüsse, die von eckigen Klammern in runde Klammern geändert wurde, als Generatorausdruck bezeichnet. Beispiel *** (i für i im Bereich (N)) *** Der Rückgabewert der Funktion oder des Ausdrucks wird als Generatoriterator bezeichnet. Einfach ausgedrückt ist es ***, der einen Iterator *** zurückgibt.

Bilddiagramm スクリーンショット 2020-05-28 14.47.39.png

Generatorfunktionen


def sample():
    cumsum = 0
    for i in range(1, 5):
        cumsum += i
        print(f'Zuerst hier →{cumsum}')
        yield cumsum

for cumsum in generator_sample2(): #Punkt
    print(f'Ertrag Minuten →{cumsum}')

*** *** Zuerst hier → 1 Ausbeute Minuten → 1 Zuerst hier → 3 Ertragsminuten → 3 Zuerst hier → 6 Ertragsminuten → 6 Zuerst hier → 10 Ertragsminuten → 10

Merkmale des Iterators 1


sample_list = [i for i in range(1, 6)]
print(f'Der Inhalt der Liste{sample_list}')

sample_iter = iter(sample_list) #iter()Machen Sie es zu einem Iterator

for i in sample_iter:
    print(i)
    
print(f'Der Inhalt der Liste ändert sich nicht{sample_list}')
print(f'Der Iterator wird bei Verwendung leer{list(sample_iter)}')

*** *** Inhalt der Liste [1, 2, 3, 4, 5] 1 2 3 4 5 Der Inhalt der Liste ändert sich nicht [1, 2, 3, 4, 5] Iterator ist leer, wenn verwendet []

Iteratorfunktion 2


sample_list = [i for i in range(1, 6)]
print(f'Der Inhalt der Liste{sample_list}')

sample_iter = iter(sample_list) #iter()Machen Sie es zu einem Iterator
print(f'So etwas wie eine Liste{sample_iter}') #Ich benutze es hier
print(f'Kann als Liste angesehen werden{list(sample_iter)}')

print(f'Der Iterator wird bei Verwendung leer{list(sample_iter)}')

*** *** Inhalt der Liste [1, 2, 3, 4, 5] So etwas wie ein list <list_iterator-Objekt bei 0x7fbf11e34b80> Als Liste gesehen [1, 2, 3, 4, 5] Iterator ist leer, wenn verwendet []

*** *** [Über Iterable](https://python.ms/iterable/#_1-%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AB%E8%A8%80%E3 % 81% 88% E3% 81% B0) [Über Iterator](https://python.ms/iterator/#_1-%E3%82%A4%E3%83%86%E3%83%AC%E3%83%BC%E3%82%BF%E3 % 82% 92% E8% A7% A6% E3% 81% A3% E3% 81% A6% E3% 81% BF% E3% 82% 8B% E3% 80% 82) Über den Generator


** Nachtrag **

@ Shiracamus Vielen Dank für den Hinweis.

Recommended Posts

[Python] Ein grobes Verständnis von Iterablen, Iteratoren und Generatoren
Python Iterator und Generator
Ein grobes Verständnis von Python-Feuer und ein Memo
[Python] Ein grobes Verständnis des Protokollierungsmoduls
Verbinde viel Python oder und und
Vollständiges Verständnis von Python-Threading und Multiprocessing
Berücksichtigung der Stärken und Schwächen von Python
Ein schneller Vergleich der Testbibliotheken von Python und node.js.
Generieren Sie Fibonacci-Zahlen mit Python-Closures, Iteratoren und Generatoren
Erhalten Sie ein abstraktes Verständnis der Python-Module und -Pakete
Python-Listeneinschlussnotation und Generator
Quellinstallation und Installation von Python
Vollständiges Verständnis des Python-Debuggens
Sehen wir uns die Sprachspezifikationen für Python-Iteratoren und -Generatoren an
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Eine grobe Zusammenfassung der Unterschiede zwischen Windows und Linux
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
Python a + = b und a = a + b sind unterschiedlich
Eine Aufzeichnung zum Patchen eines Python-Pakets
Umgebungskonstruktion von Python und OpenCV
Die Geschichte von Python und die Geschichte von NaN
Eine gute Beschreibung der Python-Dekorateure
Installation von SciPy und matplotlib (Python)
Python und DB: DBI-Cursor verstehen
[Python] Ein Memorandum der schönen Suppe4
Eine grobe Zusammenfassung der Geschichte des Betriebssystems
[Python] gibt A [oder / und] B zurück
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Zusammenfassung der Python-Indizes und -Slices
Reputation von Python-Büchern und Nachschlagewerken
Memorandum des Python-Paketverwaltungstools ez_setup
Erstellen und testen Sie eine CI-Umgebung für mehrere Versionen von Python
Installation von Visual Studio Code und Installation von Python
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python
Vollständiges Verständnis der asynchronen Python-Programmierung
Zeigen Sie eine Liste der Alphabete in Python 3 an
Extraktion von tweet.js (json.loads und eval) (Python)
Erstellen Sie ein Beziehungsdiagramm von Python-Modulen
Eine kleine Überprüfung von Pandas 1.0 und Dask
Ein Memo mit Python2.7 und Python3 in CentOS
Memorandum zu Djangos QueryDict
Vollständiges Verständnis der objektorientierten Programmierung von Python
[Python] Ruft eine Liste der Instanzvariablen ab
[Python] [Meta] Ist der Python-Typ ein Typ?
Eine Geschichte über Python Pop und Append
Einfache Einführung in die Python3-Serie und OpenCV3
[Python] Verschiedene Kombinationen von Zeichenketten und Werten
Die Geschichte der Verarbeitung A von Blackjack (Python)
[Python] Nur eine Liste der Ordner abrufen
Gleiche Automatisierung des Python- und PyPI-Setups
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
Memorandum zum Löschen von Python-Strings
[Python] Erstellen Sie eine Liste mit Datum und Uhrzeit (Datum / Uhrzeit-Typ) für einen bestimmten Zeitraum
Erstellen Sie eine Python-Umgebung, um die Theorie und Implementierung von Deep Learning zu erlernen
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Ein Memo, das ein Tutorial zum Ausführen von Python auf Heroku erstellt hat
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Zeichnen Sie in Python ein Diagramm einer quadratischen Funktion
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
Zusammenfassung der Unterschiede zwischen PHP und Python