Débutant
🧠 Fondamentaux
10 XP
0 personnes ont réussi
Premiers pas avec iter et next
En Python, quand tu écris une boucle for sur une liste, il se passe quelque chose sous le capot. Python appelle d'abord iter() sur la liste pour obtenir un itérateur, puis il appelle next() sur cet itérateur pour récupérer les éléments un par un. Quand il n'y a plus d'éléments, l'itérateur lève une exception StopIteration et la boucle s'arrête.
Tu peux faire ça toi-même à la main :
it = iter([10, 20, 30]) next(it) donne 10 next(it) donne 20 next(it) donne 30
Après le dernier élément, appeler next(it) lèverait StopIteration. Mais next() accepte un deuxième argument qui sert de valeur par défaut si l'itérateur est épuisé : next(it, None) renvoie None au lieu de planter.
Écris une fonction premiers_elements(iterable, n) qui renvoie une liste contenant les n premiers éléments d'un iterable. Si l'iterable contient moins de n éléments, renvoie juste ce qu'il y a.
def premiers_elements(iterable, n):
_sentinel = object()
it = iter(iterable)
result = []
for _ in range(n):
val = next(it, _sentinel)
if val is _sentinel:
break
result.append(val)
return result