Aide-mémoire pour la compréhension de Python

Rédigez des compréhensions concises et lisibles de listes, de dictionnaires, d'ensembles et de générateurs en Python.

Compréhensions de listes et d’ensembles

Création de séquences et d'ensembles en ligne à l'aide de boucles de sucre syntaxiques.

Méthode / FonctionSyntaxeDescriptif
List Comprehension[x * 2 for x in my_list]Construit une nouvelle liste en appliquant des expressions sur les éléments d'un itérable.
Conditional List[x for x in my_list if x > 0]Applique un prédicat de filtre, en conservant uniquement les éléments qui satisfont à la condition.
Nested Loops[x + y for x in list1 for y in list2]Aplatit les opérations imbriquées. Exécute des boucles internes pour chaque itération de boucle externe.
Set Comprehension{x for x in my_list}Génère un ensemble en appliquant automatiquement la déduplication.

Compréhensions du dictionnaire et du générateur

Génération de mappages et de flux d'évaluation paresseuse en ligne.

Méthode / FonctionSyntaxeDescriptif
Dict Comprehension{k: v for k, v in pairs}Construit un dictionnaire en ligne.
Conditional Dict{k: v for k, v in pairs if k is not None}Construit un dictionnaire en ignorant les valeurs indésirables.
Generator Expression(x ** 2 for x in range(10))Renvoie un objet itérateur générateur paresseux. Évalue les éléments un par un pour conserver la mémoire.

Script de démonstration interactif

run_all_cheat_methods.py
Exécuter dans l'éditeur
# List Comprehension
[x * 2 for x in my_list]

# Conditional List
[x for x in my_list if x > 0]

# Nested Loops
[x + y for x in list1 for y in list2]

# Set Comprehension
{x for x in my_list}

# Dict Comprehension
{k: v for k, v in pairs}

# Conditional Dict
{k: v for k, v in pairs if k is not None}

# Generator Expression
(x ** 2 for x in range(10))

Foire aux questions

Quand dois-je éviter d’utiliser les compréhensions de listes ?

Évitez les compréhensions de listes si elles sont trop complexes ou comportent plusieurs boucles imbriquées, car cela réduit la lisibilité du code.

Quelle est la différence entre une compréhension de liste et une expression génératrice ?

Les compréhensions de liste sont évaluées immédiatement et construisent la liste en mémoire, tandis que les expressions génératrices génèrent des éléments paresseusement à la demande, économisant ainsi de la mémoire.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.