Compréhensions Python : compréhensions de listes, de dictés et d'ensembles
Écrivez du Python plus propre et plus rapide. Liste principale, dictionnaire et compréhensions d'ensembles avec des exemples pratiques, des conditions de filtrage et des boucles imbriquées.
Aperçu
Les compréhensions sont l'une des fonctionnalités les plus appréciées de Python, offrant une syntaxe concise et hautement lisible pour créer de nouvelles collections (listes, dictionnaires et ensembles) à partir d'itérables existants. Plutôt que d'écrire des boucles « for » sur plusieurs lignes et d'ajouter manuellement des éléments, les compréhensions vous permettent d'effectuer les mêmes transformations, filtrages et affectations dans une seule ligne de code expressive.
Les compréhensions de liste sont la variante la plus courante, structurée comme « [expression pour l'élément dans une condition itérable si] ». Sous le capot, Python optimise les compréhensions pour s'exécuter à une vitesse proche de C, surpassant souvent les boucles « for » manuelles équivalentes car la boucle est gérée par l'interpréteur sous-jacent. Ils sont idéaux pour des transformations rapides, telles que la conversion d'une liste de températures Celsius en Fahrenheit ou l'extraction de clés spécifiques d'une liste d'enregistrements utilisateur.
Au-delà des listes, Python prend en charge les compréhensions de dictionnaires et d'ensembles. Une compréhension de dictionnaire, définie avec des accolades et des paires clé-valeur (par exemple, `{key: value for x in iterable}`), est très utile pour inverser les paires de mappage ou analyser les métadonnées. Les compréhensions d'ensembles génèrent des collections uniques en supprimant automatiquement les doublons. Bien que les compréhensions soient incroyablement puissantes, les développeurs doivent éviter de les compliquer excessivement ; si une compréhension nécessite des boucles imbriquées ou des conditions complexes, une boucle « for » traditionnelle est généralement plus facile à lire et à maintenir.
Sortie de code et d'exécution
Illustre les transformations de liste, le filtrage conditionnel et la création d'un dictionnaire à partir des entrées de mappage.
numbers = [1, 2, 3, 4, 5, 6]
# List comprehension with filter (even squares)
even_squares = [x**2 for x in numbers if x % 2 == 0]
# Set comprehension (unique word lengths)
words = ["python", "java", "ruby", "python"]
word_lengths = {len(w) for w in words}
# Dictionary comprehension (number: square)
square_map = {n: n**2 for n in numbers[:4]}
print(f"Even squares: {even_squares}")
print(f"Unique lengths: {word_lengths}")
print(f"Square mapping: {square_map}")Even squares: [4, 16, 36]
Unique lengths: {4, 6}
Square mapping: {1: 1, 2: 4, 3: 9, 4: 16}Mise en œuvre étape par étape
- Filtrage des valeurs vides ou des données invalides des journaux
- Mappage des charges utiles de l'API dans des mappages de données clé-valeur
- Formatage rapide des lignes de la base de données en listes simples
Foire aux questions
Les compréhensions sont-elles plus rapides que les boucles normales ?
Oui, dans la plupart des cas, ils sont plus rapides car l'itération est gérée par du code C optimisé dans l'interpréteur Python.
Dois-je toujours utiliser des compréhensions ?
Non. La lisibilité du code est la priorité de Python. Si la compréhension a une logique imbriquée ou est plus longue qu’une ou deux lignes, une boucle traditionnelle est préférable.
Sujets connexes
Apprenez tout sur les listes Python. Découvrez comment créer, découper, modifier et parcourir des tableaux en Python de manière native.
Dictionnaires PythonMaîtrisez les dictionnaires Python. Apprenez à stocker, récupérer et gérer les données des paires clé-valeur. Comprendre les performances et les meilleures pratiques pour les mappages.
Ensembles PythonEnsembles maîtres en Python. Apprenez à stocker des valeurs uniques, à exécuter des intersections, des unions, des différences et à comprendre les avantages du hachage en termes de performances.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Comment trier une liste en Python
Apprenez à trier une liste en Python à l'aide de la méthode sort() et de la fonction sorted(). Découvrez des exemples de tri de clés personnalisé et d’ordre inverse.
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.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.