Comprehensions

Python ↔ Baobab
5 correspondences

List, dict and set comprehensions read like Python's, with pour/dans/si instead of for/in/if.

PythonBaobabDescription
[x * 2 for x in l][x * 2 pour x dans l]List comprehension: transform each item.
[x for x in l if cond][x pour x dans l si cond]With a filter: keep only valid items.
{k: v for …}{k: v pour …}Dict comprehension.
{x for x in l}{x pour x dans l}Set comprehension.
[y for l2 in l for y in l2][y pour l2 dans l pour y dans l2]Nested loops: flatten a list of lists.
Complete example — 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]