Adloun

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

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →