Compréhensions

Python ↔ Baobab
5 correspondances

Les compréhensions de listes, de dictionnaires et d'ensembles s'écrivent comme en Python, avec pour/dans/si à la place de for/in/if.

PythonBaobabDescription
[x * 2 for x in l][x * 2 pour x dans l]Compréhension de liste : transforme chaque élément.
[x for x in l if cond][x pour x dans l si cond]Avec filtre : ne garde que les éléments valides.
{k: v for …}{k: v pour …}Compréhension de dictionnaire.
{x for x in l}{x pour x dans l}Compréhension d'ensemble.
[y for l2 in l for y in l2][y pour l2 dans l pour y dans l2]Doubles boucles : aplatit une liste de listes.
Exemple complet - Baobab ↔ Python
Baobab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nombres = [1, 2, 3, 4, 5, 6] carres = [n ** 2 pour n dans nombres] afficher(carres) # → [1, 4, 9, 16, 25, 36] pairs = [n pour n dans nombres si n % 2 == 0] afficher(pairs) # → [2, 4, 6] noms = ["amina", "kofi"] majuscules = {n: n.majuscules() pour n dans noms} afficher(majuscules) # → {"amina": "AMINA", "kofi": "KOFI"} matrice = [[1, 2], [3, 4]] plat = [x pour ligne dans matrice pour x dans ligne] afficher(plat) # → [1, 2, 3, 4]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nombres = [1, 2, 3, 4, 5, 6] carres = [n ** 2 for n in nombres] print(carres) # → [1, 4, 9, 16, 25, 36] pairs = [n for n in nombres if n % 2 == 0] print(pairs) # → [2, 4, 6] noms = ["amina", "kofi"] majuscules = {n: n.upper() for n in noms} print(majuscules) # → {"amina": "AMINA", "kofi": "KOFI"} matrice = [[1, 2], [3, 4]] plat = [x for ligne in matrice for x in ligne] print(plat) # → [1, 2, 3, 4]