Programmation fonctionnelle en Python

Exploitation de la puissance des lambdas et des fonctions d’ordre supérieur

Apprenez à écrire du code concis et puissant en Python à l’aide des techniques de programmation fonctionnelle. Ce tutoriel couvre les fonctions, les expressions lambda et les fonctions d’ordre supérieur telles que map, filter et reduce.

Programmation
Auteur·rice
Affiliation
Date de publication

5 février 2024

Modifié

9 mai 2025

Mots clés

Programmation fonctionnelle en Python, fonctions lambda, cartographier, filtrer, réduire, Fonctions d’ordre supérieur, Programmation fonctionnelle en Python

Introduction

La programmation fonctionnelle est un paradigme qui traite les fonctions comme des citoyens de première classe, ce qui signifie que les fonctions peuvent être assignées à des variables, transmises en tant qu’arguments et retournées par d’autres fonctions. En Python, vous pouvez écrire un code concis et expressif en utilisant des expressions lambda et des fonctions d’ordre supérieur telles que map, filter et reduce. Ce tutoriel explique ces concepts et montre comment ils peuvent être utilisés pour écrire un code plus élégant et plus efficace.



Concepts de base

Fonctions de premier ordre

En Python, les fonctions sont des objets de première classe. Cela signifie que vous pouvez: - Assigner des fonctions à des variables. - Transmettre des fonctions en tant qu’arguments à d’autres fonctions. - Renvoyer des fonctions à partir d’autres fonctions.

Fonctions lambda

Les fonctions lambda sont des fonctions anonymes définies avec le mot-clé lambda. Elles sont généralement utilisées pour des fonctions courtes, jetables, qui ne sont pas assez complexes pour justifier une définition de fonction complète.

Fonctions d’ordre supérieur

Les fonctions d’ordre supérieur sont des fonctions qui prennent d’autres fonctions comme arguments ou les renvoient comme résultats. Python fournit plusieurs fonctions d’ordre supérieur intégrées:
- map(): Applique une fonction à chaque élément d’une table itérative.
- filter(): Filtre les éléments d’une table itérative en fonction d’une condition.
- reduce(): Applique une fonction de manière cumulative aux éléments d’un itérable (disponible dans le module functools).

Exemples : Python et R

Vous trouverez ci-dessous des exemples démontrant les concepts de la programmation fonctionnelle en Python, avec une comparaison avec R pour le contexte.

# Python : Fonction lambda et fonctions d'ordre supérieur

# Utiliser un lambda pour doubler un nombre
double = lambda x: x * 2
print("Double of 5 is:", double(5))

# Utilisation de map() avec un lambda pour doubler chaque élément d'une liste
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print("Doubled list:", doubled)

# Utilisation de filter() avec une lambda pour sélectionner les nombres pairs
evens = list(filter(lambda x: x % 2 == 0, numbers))
print("Even numbers:", evens)

# Utilisation de reduce() pour calculer le produit d'une liste de nombres
from functools import reduce
product = reduce(lambda a, b: a * b, numbers)
print("Product of numbers:", product)
# R : Fonctions anonymes et fonctions d'ordre supérieur

# Utilisation d'une fonction anonyme avec lapply pour doubler des nombres
numbers <- c(1, 2, 3, 4, 5)
doubled <- lapply(numbers, function(x) x * 2)
print("Doubled list:")
print(unlist(doubled))

# Utilisation de Filter() avec une fonction anonyme pour sélectionner les nombres pairs
evens <- Filter(function(x) x %% 2 == 0, numbers)
print("Even numbers:")
print(evens)

# Utilisation de Reduce() pour calculer le produit de nombres
product <- Reduce(function(a, b) a * b, numbers)
print("Product of numbers:")
print(product)

Conclusion

La programmation fonctionnelle en Python vous permet d’écrire du code concis, expressif et efficace. En exploitant les fonctions de première classe, les expressions lambda et les fonctions d’ordre supérieur telles que map, filter et reduce, vous pouvez effectuer des opérations complexes de manière claire et compacte. Expérimentez ces concepts pour voir comment ils peuvent simplifier vos tâches de codage et améliorer la lisibilité du code.

Plus d’informations

Bon codage et bonne exploration de la puissance de la programmation fonctionnelle en Python!

Explorer d’autres articles

Note

Voici d’autres articles de la même catégorie pour vous aider à approfondir le sujet.

placeholder

placeholder
Aucun article correspondant
Retour au sommet

Réutilisation

Citation

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Programmation fonctionnelle en Python},
  date = {2024-02-05},
  url = {https://www.datanovia.com/fr/learn/programming/python/advanced/functional-programming.html},
  langid = {fr}
}
Veuillez citer ce travail comme suit :
Kassambara, Alboukadel. 2024. “Programmation fonctionnelle en Python.” February 5, 2024. https://www.datanovia.com/fr/learn/programming/python/advanced/functional-programming.html.