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 pairssquares = [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 dimensionsmatrix = [[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