[PYTHON] EP 11 Utiliser `zip` pour traiter les itérateurs en parallèle

  • 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 Utiliser `zip` pour traiter les itérateurs en parallèle
Comment utiliser la fonction zip
Comment utiliser les classes dans Theano
Mock in python - Comment utiliser mox
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Comment utiliser la fonction zip de python
[Introduction à Python] Comment utiliser la classe en Python?
Comment utiliser Google Test en langage C
Un moyen simple d'utiliser Wikipedia avec Python
Connaissances minimales pour utiliser Form avec Flask
Comment utiliser l'interpréteur d'Anaconda avec PyCharm
Comment utiliser __slots__ dans la classe Python
Comment utiliser le zip Python et énumérer
Comment utiliser les expressions régulières en Python
Comment utiliser Map dans ViewPager d'Android
Comment écrire ce processus en Perl?
Comment utiliser is et == en Python
Comment utiliser la bibliothèque d'images Python dans la série python3
Résumé de l'utilisation de MNIST avec Python
Utilisez un module de cryptographie qui gère OpenSSL en Python
Comment utiliser tkinter avec python dans pyenv
Détecter les anomalies dans les phrases en utilisant ELMo, BERT, USE
Connectez-vous avec json en utilisant pygogo.
Utilisez os.getenv pour obtenir des variables d'environnement en Python
EP 24 Utiliser le polymorphisme `@ classmethod` pour construire des objets de manière générique
[Pour les débutants] Comment utiliser la commande say avec python!
Je veux utiliser self avec Backpropagation (tf.custom_gradient) (tensorflow)
Erreur fatale dans le lanceur: impossible de créer le processus avec '"'
Un mémorandum sur l'utilisation de keras.preprocessing.image de Keras
Convertissez l'image au format .zip en PDF avec Python
Erreur fatale dans le lanceur: impossible de créer le processus avec '"'
Comment utiliser le bootstrap dans la vue de classe générique Django
Comment utiliser le moteur de modèle dans une application de fichier de Pyramid
Comment utiliser la clause exist dans l'ensemble de requêtes Django
Comment utiliser des variables dans les fichiers de définition d'unité systemd
Pratique pour utiliser les sous-graphiques matplotlib dans l'instruction for
J'ai essayé de résumer comment utiliser les pandas de python
Comment utiliser le modèle appris dans Lobe en Python
Comment utiliser Decorator dans Django et comment le créer
Forcer luigi à effectuer un traitement parallèle dans l'environnement Windows
Utilisez la date sur l'axe des x du tsplot représenté dans seaborn
Comment utiliser le modèle japonais Spacy avec Google Colaboratory
Je veux utiliser le jeu de données R avec python
[C / C ++] Passez la valeur calculée en C / C ++ à une fonction python pour exécuter le processus et utilisez cette valeur en C / C ++.
Le traitement parallèle de Python joblib ne fonctionne pas dans l'environnement uWSGI. Comment traiter en parallèle sur uWSGI?