Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Enchaînement et Composition des Itérateurs | Python Iterators
Concepts de Programmation Fonctionnelle en Python

bookEnchaînement et Composition des Itérateurs

Glissez pour afficher le menu

L’enchaînement et la composition des itérateurs permettent de construire des pipelines de données puissants en Python. En reliant entre elles des fonctions itératrices ou génératrices simples, il est possible de traiter les données étape par étape, chaque étape transformant ou filtrant les données avant de les transmettre à la suivante. Cette approche est particulièrement utile lorsque plusieurs opérations doivent être appliquées en séquence, comme filtrer des éléments puis les transformer, ou combiner des données provenant de plusieurs sources. La vidéo ci-dessus illustre comment utiliser des pipelines de générateurs pour garder un code modulaire et économe en mémoire, évitant ainsi la création de listes intermédiaires.

Pour voir cela en pratique, considérez un scénario où vous disposez d’une séquence de nombres et souhaitez filtrer les nombres pairs, puis élever au carré les nombres restants. Cela peut être réalisé en enchaînant deux fonctions génératrices : l’une pour le filtrage, l’autre pour la transformation. Cette méthode garantit que chaque élément est traité uniquement lorsque cela est nécessaire, rendant le code à la fois concis et efficace.

12345678910111213141516171819
def filter_odds(numbers): for n in numbers: if n % 2 != 0: yield n def square_numbers(numbers): for n in numbers: yield n ** 2 # Original data data = range(10) # Chain the generators: first filter, then transform filtered = filter_odds(data) squared = square_numbers(filtered) # Collect results result = list(squared) print(result) # Output: [1, 9, 25, 49, 81]
copy

La première fonction, filter_odds, prend un itérable de nombres et ne génère que ceux qui sont impairs. La seconde fonction, square_numbers, prend un itérable et génère le carré de chaque nombre. En transmettant directement la sortie de filter_odds à square_numbers, on crée un pipeline : d’abord le filtrage, puis la transformation des données. Le résultat final est collecté dans une liste et affiché, montrant les carrés de tous les nombres impairs de 0 à 9.

Cette méthode est économe en mémoire car chaque valeur est traitée une à une, sans créer de listes intermédiaires. Elle permet également de garder un code modulaire, chaque fonction génératrice accomplissant une tâche précise et pouvant être réutilisée dans différents pipelines.

question mark

Lequel des avantages suivants correspond à l'enchaînement des itérateurs et des générateurs en Python ?

Sélectionnez la réponse correcte

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 6

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Section 5. Chapitre 6
some-alt