Effektives Python-Memo Element 11 Verwenden Sie zip, um Iteratoren parallel zu verarbeiten

Es ist ein Memo-Schreiben des Buches effektive Python von O'Reilly Japan. https://www.oreilly.co.jp/books/9784873117560/ P21~23

Betrachten Sie den Fall der parallelen Verarbeitung mehrerer Listenelemente

** Extrahiere den Namen mit den längsten Zeichen **

names = ['Cecilia', 'Lise', 'Marie' ]
letters = [len(n) for n in names]

longest_name = None
max_letters = 0

#Muster 1
for i in range(len(names)):
    count = letters[i]
    if count > max_letters:
        longest_name = names[i]
        max_letters = count

print(longest_name)

>>>
Cecilia

Es gibt kein syntaktisches Problem, aber es ist schwer zu erkennen, dass mit dem Index der Liste zweimal darauf zugegriffen wird. Wenn die Liste extrem lang ist, ist es nicht ökologisch, alle Inhalte zu erweitern, daher möchte ich sie mit einem Generator lösen.

for name, count in zip(names, letters): #Achten Sie auf die Größe des Reißverschlusselements
    if count > max_letters:
        longest_name = name
        maxx_letters = count
        
print(longest_name)

>>>
Cecilia

Wenn Sie zip () verwenden, wird das Inhaltsverzeichnis vom Generator parallel zurückgegeben, sodass es sich um eine speicherfreundliche Spezifikation handelt. Außerdem ist es leichter zu sehen als alles andere.

Wenn jedoch die Elemente in der Zip nicht übereinstimmen. Beachten Sie, dass das Ganze endet, wenn der kürzere Iterator abgelaufen ist.

Recommended Posts

Effektives Python-Memo Element 11 Verwenden Sie zip, um Iteratoren parallel zu verarbeiten
EP 11 Verwenden Sie "zip", um Iteratoren parallel zu verarbeiten
Effektives Python-Memo Punkt 3
Effektives Python-Memo-Element 18 Verwenden Sie Positionsargumente variabler Länge, um das Erscheinungsbild sauberer zu gestalten
[R] [Python] Memo zum Lesen mehrerer CSV-Dateien in mehreren Zip-Dateien
Effektives Python-Memo-Element 19 Geben Sie Schlüsselwortargumenten optionales Verhalten
Verwendung von SQLite in Python
Wie man MySQL mit Python benutzt
Verwendung von ChemSpider in Python
Verwendung von PubChem mit Python
Verwendung der Zip-Funktion von Python
[Einführung in Python] Wie verwende ich eine Klasse in Python?
Effektives Python-Memo Punkt 10 Aufzählung aus der Reichweite
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Verwendung von __slots__ in der Python-Klasse
Verwendung von Python zip und Aufzählung
Verwendung regulärer Ausdrücke in Python
Verwendung ist und == in Python
Effektives Python-Memo Element 7 Verwenden Sie die Listeneinschlussnotation anstelle von Karte und Filter
Effektives Python-Memo-Element 8 Vermeiden Sie drei oder mehr Ausdrücke in der Listeneinschlussnotation
Verwendung der Python-Bildbibliothek in der Python3-Serie
Zusammenfassung der Verwendung von MNIST mit Python
Verwenden Sie ein Kryptografiemodul, das OpenSSL in Python verarbeitet
Wie man tkinter mit Python in Pyenv benutzt
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Verwenden Sie config.ini mit Python
Verwenden Sie Datumsangaben in Python
Verwenden Sie Valgrind mit Python
Paralleler Download mit Python
Konvertieren Sie das Bild in .zip mit Python in PDF
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
[Python] Memo zur erneuten Verarbeitung (Exponential Backoff) in AWS Lambda
Verwenden Sie den Profiler in Python
Verwendung des in Lobe in Python erlernten Modells
Ich möchte R-Datensatz mit Python verwenden
[C / C ++] Übergeben Sie den in C / C ++ berechneten Wert an eine Python-Funktion, um den Prozess auszuführen, und verwenden Sie diesen Wert in C / C ++.
Die parallele Verarbeitung der Python-Joblib funktioniert in der uWSGI-Umgebung nicht. Wie verarbeite ich parallel auf uWSGI?
Geben Sie "Farn programmgesteuert zeichnen" in den Zeichenprozess in Python ein
Effektives Python-Memo-Element 9 Betrachten Sie einen Generatorausdruck für die Notation großer Einschlüsse
Verwendung der Methode __call__ in der Python-Klasse
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
[Road to Intermediate Python] Verwenden Sie die if-Anweisung in der Listeneinschlussnotation
So entwickeln Sie in einer virtuellen Python-Umgebung [Memo]
Vergleich der Verwendung von Funktionen höherer Ordnung in Python 2 und 3
Mal sehen, wie def in Python verwendet wird
Verwenden Sie den let-Ausdruck in Python
Verwenden Sie das Messprotokoll mit Python
python3: Verwendung der Flasche (2)
Verwenden Sie die Rückruffunktion in Python
Verwenden Sie den Parameterspeicher in Python
[Python] Verwendung von Liste 1
Führen Sie Python unittest parallel aus
Melden Sie sich auf der Website in Python an
Verwenden Sie den HTTP-Cache in Python
Verwenden Sie in Python ein Diktat mit Listenschlüssel
Wie benutzt man Python Argparse?
Verwenden Sie Random Forest mit Python
Verwenden Sie Spyder von Python IDE