Comment utiliser la compréhension de liste en Python
Apprenez à utiliser les compréhensions de listes en Python. Écrivez des boucles concises, appliquez des filtres conditionnels et créez des matrices avec une syntaxe visuelle claire.
Aperçu
La compréhension de liste est l'une des fonctionnalités les plus populaires et les plus emblématiques de Python. Il offre une syntaxe concise, expressive et hautement lisible pour créer une nouvelle liste à partir d'un itérable existant (comme une liste, une plage ou un tuple). Il vous permet de remplacer les boucles « for » multilignes et les instructions d'initialisation de liste par une seule ligne de code.
La syntaxe de base d'une compréhension de liste est « [expression pour l'élément dans un itérable] ». Sous le capot, cette syntaxe est hautement optimisée dans l'implémentation de Python, ce qui la rend plus rapide que les boucles « for » standard qui ajoutent des éléments à l'aide de « .append() ». Il est idéal pour appliquer des transformations mathématiques ou modifier des éléments.
Les compréhensions de liste prennent également en charge le filtrage conditionnel à l'aide de clauses « if », vous permettant d'inclure sélectivement des éléments (par exemple, « [x for x in data if x % 2 == 0] »). Bien qu’incroyablement puissantes, les compréhensions de listes doivent être utilisées avec précaution : si votre compréhension est très complexe ou imbriquée, il est préférable d’écrire des boucles standard pour maintenir la lisibilité.
Sortie de code et d'exécution
Ce script montre les compréhensions de base des listes, le filtrage avec des conditions et la transformation des valeurs de chaîne.
# 1. Traditional for-loop way to build a list
squares_loop = []
for x in range(1, 6):
squares_loop.append(x**2)
print("Loop squares:", squares_loop)
# 2. List comprehension way (same outcome)
squares_comp = [x**2 for x in range(1, 6)]
print("Comp squares:", squares_comp)
# 3. Filtering elements with an 'if' clause (even numbers only)
evens = [n for n in range(1, 11) if n % 2 == 0]
print("Even numbers:", evens)
# 4. String modifications using comprehensions
names = ["alice", "bob", "charlie"]
caps = [name.capitalize() for name in names]
print("Capitalized:", caps)Loop squares: [1, 4, 9, 16, 25]
Comp squares: [1, 4, 9, 16, 25]
Even numbers: [2, 4, 6, 8, 10]
Capitalized: ['Alice', 'Bob', 'Charlie']Mise en œuvre étape par étape
- Identifiez le corps de la boucle et l'expression que vous souhaitez capturer dans la liste.
- Structurez la compréhension comme [expression pour l'élément en itérable].
- Ajoutez une condition if facultative à la fin pour filtrer les éléments de manière dynamique.
Foire aux questions
Puis-je utiliser des instructions if-else dans une compréhension de liste ?
Oui ! Placez la clause if-else avant la boucle for : [x if x > 0 else 0 for x in data].
Quelles sont les différences entre les compréhensions de liste et les expressions génératrices ?
Les compréhensions de listes utilisent des crochets et renvoient instantanément une liste complète. Les expressions génératrices utilisent des parenthèses et renvoient un objet générateur paresseux, qui économise de la mémoire pour les grands ensembles de données.
Sujets connexes
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.
Comment supprimer les doublons d'une liste en PythonDécouvrez comment supprimer les doublons d'une liste en Python tout en conservant ou en ignorant l'ordre. Comparez les conversions d'ensembles, les clés de dict et les méthodes de boucle.
Comment utiliser les fonctions Lambda en PythonApprenez à utiliser les fonctions lambda en Python. Maîtrisez les fonctions anonymes, les rappels en ligne et le tri des données de liste avec des clés lambda.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Listes Python
Apprenez tout sur les listes Python. Découvrez comment créer, découper, modifier et parcourir des tableaux en Python de manière native.
Aide-mémoire sur les méthodes de liste Python
Guide de référence rapide pour les opérations de liste Python. Maîtrisez l’ajout, l’insertion, la suppression, le tri et le découpage d’éléments.
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.