Data Science, Python, Economie ...

Accueil

Comprehension

Les comprehensions permettent de construire des listes, dictionnaires ou des setsset
Les sets sont des objets intermédiaires entre la [[liste]] et le [[dictionnaire]]. Il contient des éléments, sans clé et sans doublon1.

Il est utile pour vérifier si un élément est présent dans une liste, par exemple.

On les déclare avec le constructeur set() ou avec des doubles accolades :

myset = {12,13,14}
mysetset = set(12,13,14)

myset == mysetset

> True


A noter toutefois que les doubels accolades ne fonctionnent que pour ajouter des éléments singuliers (1,2,3…) et non des varia...
issus d'opérations itératives directement lors de la définition de celles-ci.

List comprehension

La syntaxe est la suivante :

[expression for item in iterable]

[x*x for x in range(5)]

# [0, 1, 4, 9, 16]

On peut aussi ajouter des conditions et des branches else. Dans le cas d'une condition seule, elle vient à la fin :

[x for x in range(10) if x % 2 == 0]

# [0, 2, 4, 6, 8]

Avec un if…else, la branche se situe devant le 'for' :

["Odd" if x%2 == 0 else "Even" for x in range(10)]

# ['Even', 'Odd', 'Even', ...

On peut même l'utiliser pour créer des listes imbriquées. Par exemple, pour transposer :

matrix = [ [1, 2], [3,4], [5,6], [7,8] ]
transposed = [ [row[i] for row in matrix] for i in range(2)]
print(transposed)

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

Dict comprehension

Le principe est le même, voici la syntaxe :

{x : 2*x for x in range(5)}

On remarquera l'ajout d'un index.

Set comprehension

De même, sans index :

{x*x for x in range(5)}

À noter : Contrairement à une liste, un setset
Les sets sont des objets intermédiaires entre la [[liste]] et le [[dictionnaire]]. Il contient des éléments, sans clé et sans doublon1.

Il est utile pour vérifier si un élément est présent dans une liste, par exemple.

On les déclare avec le constructeur set() ou avec des doubles accolades :

myset = {12,13,14}
mysetset = set(12,13,14)

myset == mysetset

> True


A noter toutefois que les doubels accolades ne fonctionnent que pour ajouter des éléments singuliers (1,2,3…) et non des varia...
ne comprend pas de doublon.