Compréhensions de listes Python expliquées avec des exemples

Les compréhensions de listes offrent un moyen concis de créer des listes en Python. Elles sont plus lisibles et souvent plus efficaces que l'utilisation de boucles traditionnelles. Cet article explorera ce que sont les compréhensions de listes, comment elles fonctionnent et fournira des exemples pour illustrer leur utilisation.

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

Une compréhension de liste est une manière compacte de traiter tout ou partie des éléments d'une collection et de renvoyer une liste avec les résultats. La syntaxe d'une compréhension de liste est la suivante:

[expression for item in iterable if condition]

Ici, expression est l'élément actuel de l'itération, mais c'est aussi le résultat, que vous pouvez manipuler avant qu'il ne finisse comme un élément de liste. iterable est la collection que vous parcourez et condition est un filtre facultatif qui inclut uniquement les éléments qui satisfont à la condition.

Exemples de base

Créer une liste de carrés

Pour créer une liste de carrés de nombres de 0 à 9, vous pouvez utiliser une compréhension de liste comme suit:

numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
squares = [x ** 2 for x in numbers]
print(squares)

Sortir:

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

Filtrage des éléments

Vous pouvez également ajouter une condition pour filtrer les éléments. Par exemple, pour obtenir uniquement les nombres pairs de la liste:

even_squares = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squares)

Sortir:

[0, 4, 16, 36, 64]

Aplatissement d'une liste de listes

Si vous avez une liste de listes et que vous souhaitez l'aplatir, vous pouvez utiliser une compréhension de liste:

list_of_lists = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
flattened = [item for sublist in list_of_lists for item in sublist]
print(flattened)

Sortir:

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Exemples avancés

Application des fonctions

Vous pouvez appliquer des fonctions dans une liste de compréhension. Par exemple, pour convertir une liste de chaînes en majuscules:

words = ['hello', 'world', 'python']
uppercase_words = [word.upper() for word in words]
print(uppercase_words)

Sortir:

['HELLO', 'WORLD', 'PYTHON']

Compréhensions imbriquées

Les compréhensions de listes peuvent être imbriquées. Par exemple, pour créer une liste de tuples (i, j) où i et j sont tous deux des éléments de deux listes:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
pairs = [(i, j) for i in list1 for j in list2]
print(pairs)

Sortir:

[(1, 'a'), (1, 'b'), (1, 'c'), (2, 'a'), (2, 'b'), (2, 'c'), (3, 'a'), (3, 'b'), (3, 'c')]

Conclusion

Les compréhensions de listes offrent un moyen puissant et concis de générer des listes en Python. Elles peuvent simplifier votre code et le rendre plus lisible en remplaçant plusieurs lignes de code de boucle par une seule ligne de compréhensions. Entraînez-vous à utiliser les compréhensions de listes pour vous familiariser avec leur syntaxe et leurs capacités.