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'