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]
Un instant

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]
Un instant

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

Avantages des compréhensions de liste en général

  • 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.

Remplacement de map et filter par les compréhensions de liste

Les fonctions intégrées map et filter en Python étaient traditionnellement utilisées pour manipuler des listes, mais leur usage est maintenant souvent remplacé par des compréhensions de liste, plus lisibles et intuitives.

Exemple avec map

Voici comment transformer une liste avec la fonction map :

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

# Équivalent à cette compréhension de liste
carres = [x**2 for x in nombres]
Un instant

Exemple avec filter

Voici comment filtrer une liste avec la fonction filter :

nombres = [1, 2, 3, 4, 5]
nombres_pairs = list(filter(lambda x: x % 2 == 0, nombres))
print(nombres_pairs)  # Résultat : [2, 4]

# Équivalent à cette compréhension de liste
nombres_pairs = [x for x in nombres if x % 2 == 0]
Un instant

Pourquoi préférer les compréhensions de liste à map et filter ?

  • Lisibilité : Les compréhensions de liste sont souvent plus simples et claires à lire et à écrire que les expressions utilisant map et filter.

  • Performance : Elles offrent souvent une légère amélioration en termes de performances.

  • Polyvalence : Les compréhensions de liste permettent facilement de combiner transformation et filtrage en une seule expression, contrairement à map et filter qui nécessitent une combinaison plus complexe.

Aujourd'hui, il est généralement recommandé d'utiliser les compréhensions de liste pour leur clarté et leur efficacité dans le code Python moderne.

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.