Aller au contenu

Compréhensions

Les comprehensions en Python permettent d’écrire du code plus concis et plus idiomatique. Elles ne servent pas uniquement aux listes, et permettent de simplifier certains blocs de code pour lesquels vous auriez eu besoin d’un itérateur (au moins) dans un autre langage.

# Génère une liste contenant le carré des nombres pairs
squares = [x**2 for x in range(10) if x % 2 == 0]
[0, 4, 16, 36, 64]
# Correspondance entre un nombre et son cube
cubes = {x: x**3 for x in range(6)}
{
0: 0,
1: 1,
2: 8,
3: 27,
4: 64,
5: 125
}
words = ["hello", "world", "python"]
unique_lengths = {len(workds) for word in words}
{5, 6}
# Applatissement d'une matrice à deux dimensions
matrix = [[1, 2], [3, 4], [5, 6]]
flattened = [num for row in matrix for num in row]
[1, 2, 3, 4, 5, 6]

Yield

Une astuce vraiment intéressante consiste à utiliser le mot-clé yield pour ne retourner la prochaine valeur que lorsqu’elle sera demandée ; l’empreinte mémoire est à nouveau très faible, puisqu’il n’y a jamais qu’un seul élément retourné.

TBC

Ressources