EP 7 Utiliser les compréhensions de liste au lieu de carte et de filtre

  • List comprehensions are clearer than the map and filter built-in functions because they don't require extra lambda expressions.

Effective Python

>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> squres = [x ** 2 for x in a]
>>> squres
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

>>> squres_map = map(lambda x: x ** 2, a)
>>> list(squres_map)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

map requies creating a lambda function for the computation, which is visually noisy.

>>> even_squares = [x ** 2 for x in a if x % 2 == 0]
>>> even_squares
[4, 16, 36, 64, 100]


>>> even_squares_fp = map(lambda x: x ** 2, filter(lambda x: x % 2 == 0, a))
>>> list(even_squares_fp)
[4, 16, 36, 64, 100]

Dicts and sets comprehensions

>>> chile_ranks = dict(ghost=1, habanero=2, cayenne=3)
>>> rank_dict = {rank:name for name, rank in chile_ranks.items()}
>>> rank_dict
{1: 'ghost', 2: 'habanero', 3: 'cayenne'}
>>> chile_len_set = {len(name) for name in rank_dict.values()}
>>> chile_len_set
{8, 5, 7}

Recommended Posts

EP 7 Utiliser les compréhensions de liste au lieu de carte et de filtre
Élément de mémoire Python efficace 7 Utilisez la notation d'inclusion de liste au lieu de la carte et du filtre
Fonctionnement du filtre (Aucun, liste)
Utilisation et intégration de "Shodan"
Notation et générateur d'inclusion de liste Python
Utilisons usercustomize.py au lieu de sitecustomize.py
Utilisons tomotopy au lieu de gensim
Lors de la sortie d'une liste de S3 avec Boto3, utilisez Bucket (). Objects.filter au lieu de list_objects_v2.
R: Utilisez le japonais au lieu du japonais dans le script
Liste des packages Atom que j'utilise vraiment
Résumé de l'utilisation de la liste Python
EP 16 Envisager un générateur au lieu de renvoyer des listes
[Pour les débutants] Exemple simple de fonctions d'opération de liste mapper, réduire, filtrer
Liste des fonctions et méthodes intégrées fréquemment utilisées
Comparez la vitesse d'ajout et de carte Python
environnement de développement python -utilisation de pyenv et virtualenv-
Liste de code Python à déplacer et à mémoriser
Nettoyage des données 3 Utilisation d'OpenCV et prétraitement des données d'image
EP 4 Fonctions d'aide à l'écriture au lieu d'expressions complexes