Generatoren in Python

Python Review Kostenlose Hinweise – #PySeries#Episode 17

#GENERATOREN IN PYTHON: Was ist das?

Generators in Python allows us to write a function that can send back a value and then later resume to pick up where it left off.

Beginnen wir mit einer Fibonacci - Funktion:

Ausgabe (Eingabe 10):

How many terms? 10 Fibonacci sequence: 
0 
1 
1 
2 
3 
5 
8 
13 
21 
34

02 #PyEx — Python —Funktion — Fubonacci Vereinfacht :

Vereinfachen wir den Code für diese Lektion, betrachten Sie dieses Stück Code (Zero out:)

def gen_fibo(n):
a = 1
b = 1
output = []
for i in range(n):
output.append(a)
a,b = b, a + b
return output

gen_fibo(10)
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

Holen wir uns eins!

Verwenden Sie jetzt das Schlüsselwort yield in der zweiten Fibo-Funktion, um es speichereffizienter zu machen :-)

03 #PyEx — Python — Funktion — Fubonacci mit Ausbeute :

def gen_fibo(n):
a = 1
b = 1
for i in range(n - 1):
yield a
a, b = a, a + b

g = gen_fibo(10)
g
<generator object gen_fibo at 0x7f0cecb33ed0>

Sehen Sie den Unterschied? Nein? Also weiterlesen …

Diese letzte Funktion ist ein Generator. Was ist überhaupt ein Generator?

Ein Generator ist viel effizienter in Bezug auf die Verwendung von Speicher; Wir laden die Daten nicht vollständig in den Speicher, wie im Code mit append();

Wir arbeiten nur in Streams, das heißt, wir speichern nur die unmittelbar vorangegangenen Daten und sparen somit Speicherplatz; das Objekt ist viel einfacher :)

Eine weitere interaktive Funktion:

Sehen wir uns einen anderen Generator an:

04 #PyEx — Python — Funktion — Einfacher Generator :

def simple_gen():
for x in range (4):
yield x

g = simple_gen()
g
<generator object simple_gen at 0x7f0cecb334d0>

Die Ausgabe:

next(g)
0
next(g)
1
next(g)
2
next(g)
3

05 #PyEx — Python — String — Sind interaktiv?

Sehen wir uns nun an, ob ein String-Objekt interaktiv ist …

s = ‘hello’
for letter in s:
print(letter)
h
e
l
l
o

next(s)
---------------------------------------------------------------TypeError                           Traceback (most recent call last)
<ipython-input-262-46f008985a16> in <module>()
      1 # String is not interactable:/
----> 2 next(s)
TypeError: 'str' object is not an iterator

Um Strings in ein interaktives Objekt umzuwandeln, verwenden Sie die Funktion iter() :

s_iter = iter(s)
next(s_iter)

next(s_iter)
'h'
next(s_iter)
'e'
(...)

Hier ist also der endgültige Generatorcode für unsere Fibonacci-Funktion:

Die Ausgabe:

g = prog_fibo_2(10)
g
<generator object gen_fibo_ef at 0x7f0cecb34350>
next(g)
1
next(g)
1
next(g)
2
(...)

Dieser Hinweis enthält einen Auszug aus dem Python Data Science Handbook von Jake VanderPlas;

Der Inhalt ist auf GitHub verfügbar .

Der Text wird unter der CC-BY-NC-ND-Lizenz veröffentlicht, und der Code wird unter der MIT-Lizenz veröffentlicht . Wenn Sie diesen Inhalt nützlich finden, erwägen Sie bitte, die Arbeit zu unterstützen, indem Sie das Buch kaufen !

Führen Sie nun pip aus:

07 #PyEx – Python – String – Profiling & Timing

pip install memory_profiler
Requirement already satisfied: memory_profiler in /usr/local/lib/python3.7/dist-packages (0.58.0) Requirement already satisfied: psutil in /usr/local/lib/python3.7/dist-packages (from memory_profiler) (5.4.8)

%load_ext memory_profiler
The memory_profiler extension is already loaded. To reload it, use:   %reload_ext memory_profiler

def gen_fibo(n):
a = 1
b = 1
output = []
for i in range(n):
output.append(a)
a,b = b, a + b
return output

%timeit gen_fibo(10)
1000000 loops, best of 5: 1.31 µs per loop

def prog_fibo_2(n):
 a = 1
 b = 1
 for i in range(n):
    yield a
    a, b = b, a + b

%timeit prog_fibo_2(10)
1000000 loops, best of 5: 236 ns per loop

print(“That’s it! thank you for reading his episode about the wonders of Python:) “)
That's it! thank you for reading his episode about the wonders of Python:)

Bis zum nächsten Mal!

Ich wünsche Ihnen einen ausgezeichneten Tag!

Sicher sein!

Prost!

Google Colab Notebooks sind hier:

Colab Notebook- Link :)

Google Drive - Link :)

Ähnliche Beiträge:

00Episode# PySeries – Python – Jupiter Notebook Schnellstart mit VSCode – So richten Sie Ihre Win10-Umgebung für die Verwendung von Jupiter Notebook ein

01Episode# PySeries – Python – Python 4 Ingenieure – Übungen! Ein Überblick über die Möglichkeiten, die Python im Ingenieurwesen bietet!

02Episode# PySeries – Python – Geogebra Plus Lineare Programmierung – Wir erstellen ein Geogebra-Programm, das uns bei unserer linearen Programmierung hilft

03Episode# PySeries – Python – Python 4-Ingenieure – Mehr Übungen! – Eine weitere Runde, um sicherzustellen, dass Python wirklich erstaunlich ist!

04Episode# PySeries – Python – Lineare Regressionen – Die Grundlagen – Wie man die lineare Regression ein für alle Mal versteht!

05Episode# PySeries – Python – NumPy Init & Python Review – Ein Crash Python Review & Initialisierung bei NumPy lib.

06Episode# PySeries – Python – NumPy-Arrays & Jupyter-Notebook – Arithmetische Operationen, Indizierung und Slicing sowie bedingte Auswahl mit np-Arrays.

07Episode# PySeries – Python – Pandas – Intro & Serie – Was ist das? Wie benutzt man es?

08Episode# PySeries – Python – Pandas DataFrames – Die primäre Pandas-Datenstruktur! Es ist ein dict-ähnlicher Container für Series-Objekte

09Episode# PySeries – Python – Python 4 Engineers – Noch mehr Übungen! — Mehr Programmierfragen in Python üben!

10Episode# PySeries – Python – Pandas – Hierarchischer Index & Querschnitt – Öffnen Sie Ihr Colab-Notizbuch und hier sind die Folgeübungen!

11Episode# PySeries – Python – Pandas – Fehlende Daten – Fahren wir mit den Python-Übungen fort – Füllen und Löschen fehlender Daten

12Episode# PySeries – Python – Pandas – Gruppieren nach – Gruppieren großer Datenmengen und Rechenoperationen für diese Gruppen

13Episode# PySeries – Python – Pandas – Merging, Joining & Concatenations – Möglichkeiten zum einfachen Kombinieren von Serien oder DataFrames

14Episode# PySeries – Python – Pandas – Pandas Dataframe-Beispiele: Spaltenoperationen

15Episode# PySeries – Python – Python 4-Ingenieure – Bewahren Sie es im Kurzzeitgedächtnis auf – Testen Sie sich selbst! Codieren in Python, wieder!

16Episode# PySeries – NumPy – NumPy Review, Again;) – Python Review Kostenlose Übungen

17Episode# PySeries – Generatoren in Python – Python Review Kostenlose Hinweise (dieser)

Suggested posts

So führen Sie ChatGPT-Plugins kostenlos mit Langchain aus

So führen Sie ChatGPT-Plugins kostenlos mit Langchain aus

Sie haben sicher schon von allen neuen leistungsstarken ChatGPT-Plugins wie Browser, Code Interpreter usw. gehört. Es gibt jedoch ein Problem: Der Zugriff auf Plugins ist auf eine Warteliste beschränkt und viele haben daher keinen Zugriff darauf.

Meine am häufigsten verwendeten Codierungsressourcen

Meine am häufigsten verwendeten Codierungsressourcen

Diese Woche erhielt ich eine E-Mail von einem Mitglied der täglichen E-Mail-Liste. Sie wollten wissen: Welche Ressourcen besuchen Sie täglich, wöchentlich und monatlich? Tolle Frage! Ich versuche gerne, einige Einblicke in meinen Arbeitsablauf und die wichtigsten Ressourcen, die ich verwende, mit Ihnen zu teilen.

Related posts

Was Sie in Ihrer Wartezeit tun können (Warten auf Ihren ersten Job in der Technikbranche)

Was Sie in Ihrer Wartezeit tun können (Warten auf Ihren ersten Job in der Technikbranche)

Der Wechsel in eine neue Karriere kann eine große Herausforderung sein, wenn man es alleine versucht. Es ist wichtig, Verantwortungspartner zu finden, die sich auf dem gleichen Lernniveau wie Sie befinden und ähnliche Ziele, Hartnäckigkeit und Tatendrang haben.

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Verfolgen Sie jeden mit nur einer Telefonnummer | OSINT-Untersuchung

Sie können ein OSINT-Ermittler, ein CTF-Spieler oder einfach jemand sein, der Spam-Anrufe erhält. Jemand, der versucht, die Nummer zu bestätigen, die Sie in einer Anzeige gesehen haben.

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Die Vorteile des Schreibens und Strategien, die Ihnen dabei helfen

3 bewährte Möglichkeiten, Ihre Schreibfähigkeiten zu verbessern

Im Jahr 2022, mit der Veröffentlichung von GPT-3, scheinen Schreibfähigkeiten an Bedeutung zu verlieren. Mit KI können auch Menschen mit schlechten Schreibkenntnissen hochwertiges Personal hervorbringen.

Informationen zu Domänennamen finden

Ein Auszug aus Small, Sharp Software Tools von Brian P. Hogan

Informationen zu Domänennamen finden

Wenn Sie eine Anfrage an facebook.com stellen, sucht Ihr Computer nach dem Domänennamen, um diesen in eine IP-Adresse zu übersetzen, damit Ihr Computer diese Verbindung herstellen kann.