Python (école d'ingénieur) · Chapitre 4 · Exercice
Appliquer une fonction à tous les éléments
Fonctions et modularité
Énoncé
Écrire une fonction appliquer_à_tous(f, *args) qui prend une fonction f et un nombre variable d'arguments. La fonction doit retourner une liste des résultats de f appliquée à chaque argument.
Corrigé
Voici l'implémentation en utilisant une compréhension de liste :
def appliquer_à_tous(f, *args):
"""
Applique la fonction f à chacun des arguments et retourne les résultats dans une liste.
Exemple : appliquer_à_tous(lambda x: x**2, 1, 2, 3, 4) -> [1, 4, 9, 16]
"""
return [f(arg) for arg in args]
# Tests
carre = lambda x: x**2
print(appliquer_à_tous(carre, 1, 2, 3, 4)) # [1, 4, 9, 16]
double = lambda x: 2*x
print(appliquer_à_tous(double, 10, 20, 30)) # [20, 40, 60]
# Avec une fonction nommée classique
def est_pair(x):
return x % 2 == 0
print(appliquer_à_tous(est_pair, 1, 2, 3, 4)) # [False, True, False, True]
Cette fonction illustre le concept de fonction d'ordre supérieur : une fonction qui prend une autre fonction en argument. Python intègre déjà la fonction map() qui effectue une opération similaire mais retourne un itérateur.
100 % gratuit
La suite du chapitre est sur Adloun
- 7 autres exercices corrigés dans ce chapitre, et 7 à chercher avec le tuteur
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.