Maison  >  Article  >  développement back-end  >  Programmation fonctionnelle Python que tout le monde devrait connaître

Programmation fonctionnelle Python que tout le monde devrait connaître

WBOY
WBOYavant
2023-04-11 22:43:121481parcourir

La programmation fonctionnelle ou programmation fonctionnelle est un paradigme de programmation.

Il traite les opérations informatiques comme des opérations de fonctions mathématiques et évite l'utilisation d'états de programme et d'objets variables.

Ce qui précède ne sont que de simples concepts de programmation fonctionnelle, il nous suffit de les comprendre brièvement.

En Python, la programmation fonctionnelle consiste principalement à utiliser plusieurs fonctions : lambda()​, map()​, réduire()​, filter(), etc.

Fonction 1.lambda

La fonction lambda redevient une fonction anonyme. Une fonction lambda ne peut avoir qu’une seule expression et il n’est pas nécessaire d’écrire return pour renvoyer la valeur de la fonction. Bien entendu, la fonction anonyme est également un objet fonction, et la fonction anonyme peut également être affectée à une variable.

Programmation fonctionnelle Python que tout le monde devrait connaître

Vous pouvez également renvoyer des fonctions anonymes comme valeurs de retour

Programmation fonctionnelle Python que tout le monde devrait connaître

On peut voir que la variable f est un type de fonction lambda et que vous devez utiliser f() pour appeler la fonction.

2.fonction map

La fonction map reçoit deux paramètres, l'un est une fonction et l'autre est un Interable (séquence itérable). La fonction map applique la fonction à chaque élément de la séquence tour à tour et renvoie le résultat sous forme de. nouveau Interable.

Regardez un exemple :

Programmation fonctionnelle Python que tout le monde devrait connaître

Une analyse de liste simple, en ajoutant 2 à chaque élément de la liste a, à l'aide de la fonction map peut être écrite comme suit :

Programmation fonctionnelle Python que tout le monde devrait connaître

Puisque la fonction map renvoie une séquence paresseuse, elle doit être appelé via des fonctions telles que list().

Bien que le code ci-dessus semble plus compliqué que d'écrire directement une boucle for, lorsque la quantité de données est importante, l'efficacité du for de Python n'est pas très élevée, tandis que l'efficacité de la carte peut être proche de celle du langage C. En même temps, le code est également beaucoup plus simple et ressemble à un artefact X.

Un autre petit exemple, convertissez les éléments de la liste en une chaîne, une commande

Programmation fonctionnelle Python que tout le monde devrait connaître

3 fonction de réduction

C'est un peu similaire à map, mais map est utilisé pour le parcourir un par un, tandis que le La fonction de réduction est utilisée. Calculée de manière récursive.

Une simple sommation de séquence

Programmation fonctionnelle Python que tout le monde devrait connaître

Sommez chaque élément de la liste a dans la séquence, et regardons un exemple de fonction int() maison

C'est l'utilisation de la fonction intégrée de Python int

Programmation fonctionnelle Python que tout le monde devrait connaître

us Ce qui suit peut également être obtenu grâce aux fonctions de réduction et de mappage

Programmation fonctionnelle Python que tout le monde devrait connaître

Utilisez d'abord la fonction map pour parcourir la liste de chaînes 23465, puis appliquez récursivement chaque élément de la liste à la fonction lambda via la fonction de réduction.

4. Fonction de filtre

Il reçoit également une fonction et une séquence. filter() applique tour à tour la fonction transmise à chaque élément, puis décide de conserver ou de supprimer l'élément selon que la valeur de retour est True ou False. .

Programmation fonctionnelle Python que tout le monde devrait connaître

Résumé

L'utilisation de ces fonctions peut non seulement rendre notre code plus concis, mais également améliorer considérablement l'efficacité lorsque la quantité de données est importante ou que le calcul est intensif.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer