Exercices Fonctions & Modules Pipeline de traitement avec générateurs
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Pipeline de traitement avec générateurs

Dans la vraie vie, les générateurs sont souvent utilisés pour créer des pipelines de traitement. L'idée, c'est d'enchaîner plusieurs générateurs comme des tuyaux : chaque générateur prend les données du précédent, les transforme, et les passe au suivant.

Par exemple, imagine que tu as des lignes de log et tu veux :
1. Filtrer celles qui contiennent un mot-clé
2. Extraire une partie de chaque ligne
3. Convertir le résultat

Chaque étape est un petit générateur simple, et tu les connectes ensemble.

Écris trois générateurs qui forment un pipeline :

filtrer(lignes, mot) : ne garde que les lignes contenant le mot
extraire_nombres(lignes) : pour chaque ligne, extrait le premier nombre trouvé (ou ignore la ligne s'il n'y en a pas)
plus_grands_que(nombres, seuil) : ne garde que les nombres strictement supérieurs au seuil

Puis écris une fonction pipeline(lignes, mot, seuil) qui connecte les trois et renvoie la liste des résultats.

Exemple :
lignes = ['erreur 404', 'ok 200', 'erreur 500', 'ok 301', 'erreur 403']
pipeline(lignes, 'erreur', 403) renvoie [404, 500]

Tests (3/4)

Pipeline complet
import re
lignes = ['erreur 404', 'ok 200', 'erreur 500', 'ok 301', 'erreur 403']
assert pipeline(lignes, 'erreur', 403) == [404, 500]
Aucun résultat
import re
lignes = ['info 100', 'info 200']
assert pipeline(lignes, 'erreur', 0) == []
Tout passe
import re
lignes = ['log 10', 'log 20', 'log 30']
assert pipeline(lignes, 'log', 0) == [10, 20, 30]

+ 0 tests cachés

Indices (3 disponibles)

solution.py