Exercices Fonctions & Modules Combiner des itérables avec itertools
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Combiner des itérables avec itertools

Le module itertools de Python fournit plein d'outils pour travailler avec des itérables de manière efficace. Deux fonctions particulièrement utiles :

itertools.chain(*iterables) enchaîne plusieurs itérables bout à bout, comme si c'était une seule séquence :
list(chain([1, 2], [3, 4])) donne [1, 2, 3, 4]

itertools.islice(iterable, stop) prend les n premiers éléments d'un itérable, même s'il est infini :
list(islice(range(1000000), 3)) donne [0, 1, 2]

Ces fonctions renvoient des itérateurs, pas des listes. Elles ne consomment pas de mémoire supplémentaire.

Écris une fonction premiers_de_chaque(listes, n) qui prend une liste de listes et renvoie les n premiers éléments en enchaînant toutes les listes. Utilise itertools.chain et itertools.islice.

Exemple :
premiers_de_chaque([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 5) renvoie [1, 2, 3, 4, 5]
premiers_de_chaque([[1], [2], [3]], 2) renvoie [1, 2]

Tests (3/4)

5 premiers de 3 listes
from itertools import chain, islice
assert premiers_de_chaque([[1, 2, 3], [4, 5, 6], [7, 8, 9]], 5) == [1, 2, 3, 4, 5]
2 premiers de petites listes
from itertools import chain, islice
assert premiers_de_chaque([[1], [2], [3]], 2) == [1, 2]
Plus que disponible
from itertools import chain, islice
assert premiers_de_chaque([[1, 2]], 10) == [1, 2]

+ 0 tests cachés

Indices (3 disponibles)

solution.py