Les compréhensions de liste en Python

Les compréhensions de liste en Python sont des outils puissants qui permettent de créer et de manipuler des listes de manière concise et lisible.

Dans cet article, nous allons explorer le concept de compréhension de liste, ses avantages, et comment l'utiliser efficacement dans vos projets Python.

Qu'est-ce qu'une compréhension de liste ?

Une compréhension de liste est une expression compacte pour construire une nouvelle liste en appliquant une fonction à chaque élément d'une autre liste ou d'un autre itérable. La syntaxe générale d'une compréhension de liste est la suivante :

[expression for item in iterable if condition]

Où :

  • expression est l'opération ou la fonction à appliquer à chaque élément de l'itérable.
  • item est une variable temporaire qui représente chaque élément de l'itérable.
  • iterable est la liste ou l'objet itérable dont on souhaite traiter les éléments.
  • condition est une condition optionnelle pour filtrer les éléments de l'itérable.

Supposons que nous ayons une liste de nombres et que nous voulions créer une nouvelle liste contenant les carrés de ces nombres. Voici comment nous pourrions utiliser une compréhension de liste pour accomplir cela :

nombres = [1, 2, 3, 4, 5]
carres = [x**2 for x in nombres]
print(carres)  # Résultat : [1, 4, 9, 16, 25]

Dans cet exemple, x**2 est l'expression qui calcule le carré de chaque élément, et x est la variable temporaire qui représente chaque élément de la liste nombres.

Utilisation de conditions

Il est possible d'ajouter une condition pour filtrer les éléments de la liste d'entrée. Par exemple, si nous voulons obtenir les carrés des nombres pairs uniquement, nous pouvons ajouter une condition if comme suit :

nombres = [1, 2, 3, 4, 5]
carres_pairs = [x**2 for x in nombres if x % 2 == 0]
print(carres_pairs)  # Résultat : [4, 16]

Dans cet exemple, la condition x % 2 == 0 vérifie si un nombre est pair.

Avantages des compréhensions de liste

  • Lisibilité : Les compréhensions de liste rendent le code plus lisible et compréhensible en évitant l'utilisation de boucles for et if imbriquées.
  • Concision : Elles permettent d'écrire des opérations complexes sur les listes en une seule ligne de code.
  • Performance : Les compréhensions de liste sont généralement plus rapides que les boucles for traditionnelles, car elles sont optimisées pour les opérations sur les listes.