Listes en intension

Où comment faire des boucles sans en faire (et sans map et filter)

[1]:
# list comprehension

iterable = range(10)

[i ** 2 for i in iterable if (i % 2 == 0)]
[1]:
[0, 4, 16, 36, 64]
[2]:
# dict comprehension

iterable = ['toto', 'tata', 'titi']

{nom: num for (num, nom) in enumerate(iterable)}
[2]:
{'toto': 0, 'tata': 1, 'titi': 2}
[3]:
# generator comprehension

iterable = ['bonjour', None, None, 'tout', None, 'le', None, None, None, 'monde']

generator = (mot for mot in iterable if mot is not None)

print(generator)
' '.join(generator)
<generator object <genexpr> at 0x00000239D2686180>
[3]:
'bonjour tout le monde'

Exercices