[PYTHON] EP 11 Verwenden Sie "zip", um Iteratoren parallel zu verarbeiten

  • The zip built-in function can be used to iterate over multiple iterators in parallel.

Effective Python

Verbose

>>> names = "Michel Stonbreaker Peter Bilas Franklin".split()
>>> letters = [len(n) for n in names]
>>> longest_name = None
>>> max_letters = 0
>>> for i in range(len(names)):
...  count = letters[i]
...  if count > max_letters:
...   longest_name = names[i]
...   max_letters = count
...
>>> print(longest_name)
Stonbreaker

You can use enumerate. But it is still verbose.

>>> for i, name in enumerate(names):
...  count = letters[i]
...  if count > max_letters:
...   longest_name = names[i]
...   max_letters = count
...
>>> print(longest_name)
Stonbreaker
>>> for name, count in zip(names, letters):
...  if count > max_letters:
...   longest_name = name
...   max_letters = count
...
>>> print(longest_name)
Stonbreaker

zip truncate implecitly. if it iterate the different length of iteratable objects.

itertools.zip_longest could be a solution for this.

>>> for name, count in zip(names, letters):
...     print(name, count)
...
Michel 6
Stonbreaker 11
Peter 5
Bilas 5
Franklin 8
>>> from itertools import zip_longest
>>> for name, count in zip_longest(names, letters):
...  print(name, count)
...
Michel 6
Stonbreaker 11
Peter 5
Bilas 5
Franklin 8
Matei None
>>>

Recommended Posts

EP 11 Verwenden Sie "zip", um Iteratoren parallel zu verarbeiten
Verwendung der Zip-Funktion
Verwendung von Klassen in Theano
Mock in Python-Wie man Mox benutzt
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?
Verwendung von Google Test in C-Sprache
Einfache Möglichkeit, Wikipedia mit Python zu verwenden
Mindestkenntnisse zur Verwendung von Form with Flask
Verwendung von Anacondas Interpreter mit PyCharm
Verwendung von __slots__ in der Python-Klasse
Verwendung von Python zip und Aufzählung
Verwendung regulärer Ausdrücke in Python
So verwenden Sie Map in ViewPager von Android
Wie schreibe ich diesen Prozess in Perl?
Verwendung ist und == in Python
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
Erkennen Sie Anomalien in Sätzen mit ELMo, BERT, USE
Loggen Sie sich mit json mit pygogo ein.
Verwenden Sie os.getenv, um Umgebungsvariablen in Python abzurufen
EP 24 Verwenden Sie den Polymorphismus "@ classmethod", um Objekte generisch zu konstruieren
[Für Anfänger] Wie man den Befehl say mit Python benutzt!
Ich möchte mich mit Backpropagation (tf.custom_gradient) (Tensorflow) selbst verwenden.
Schwerwiegender Fehler im Launcher: Prozess kann nicht mit '"' erstellt werden
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Konvertieren Sie das Bild in .zip mit Python in PDF
Schwerwiegender Fehler im Launcher: Prozess kann nicht mit '"' erstellt werden
Verwendung von Bootstrap in der generischen Klassenansicht von Django
Verwendung der Template-Engine in einer Dateianwendung von Pyramid
Verwendung der Exist-Klausel in Django Queryset
Verwendung von Variablen in systemd Unit-Definitionsdateien
Praktisch, um Matplotlib-Unterzeichnungen in for-Anweisungen zu verwenden
Ich habe versucht zusammenzufassen, wie man Pandas von Python benutzt
Verwendung des in Lobe in Python erlernten Modells
Wie man Decorator in Django benutzt und wie man es macht
Erzwinge luigi, eine parallele Verarbeitung in der Windows-Umgebung durchzuführen
Verwenden Sie das Datum auf der x-Achse des in seaborn dargestellten tsplot
Verwendung des japanischen Spacy-Modells mit Google Colaboratory
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?