objectif
Aplatir un niveau de listes/iterables sans créer de copies inutiles.
code minimal
import itertools
out = list(itertools.chain([1,2], [3], [], [4,5]))
print(out == [1,2,3,4,5]) # attendu: True
utilisation
import itertools
nested = [[1,2],[3,4]]
flat = list(itertools.chain.from_iterable(nested))
print(flat == [1,2,3,4])
variante(s) utile(s)
import itertools
print(tuple(itertools.chain("ab","cd")) == ("a","b","c","d"))
notes
- chain est paresseux; préférez-le à des + ou sum(listes, []) coûteux.
- Pour des niveaux plus profonds, voyez itertools.recipes ou un générateur.