Maison >développement back-end >Tutoriel Python >Une brève discussion sur l'utilisation de la fonction Lambda en Python

Une brève discussion sur l'utilisation de la fonction Lambda en Python

WBOY
WBOYavant
2023-04-12 12:55:021448parcourir

Une brève discussion sur l'utilisation de la fonction Lambda en Python

Aujourd'hui, j'aimerais recommander une fonction intégrée super facile à utiliser en Python, qui est la méthode lambda. Ce tutoriel partagera avec vous en gros :

  • Qu'est-ce que la fonction lambda
  • La fonction lambda. filtre les éléments de la liste
  • lambda La combinaison de la fonction et de la méthode map()
  • La combinaison de la fonction lambda et de la méthode apply()
  • Quand ne convient-il pas d'utiliser la méthode lambda

Qu'est-ce que la fonction Lambda

En Python, nous utilisez souvent le mot-clé lambda pour déclarer une fonction anonyme. La fonction dite anonyme est, en termes simples, une fonction sans nom. Le format de syntaxe spécifique est le suivant :

lambda arguments : expression

Elle peut accepter n'importe quel nombre de paramètres, mais uniquement. autorise une expression, et le résultat de l'expression est la valeur de retour de la fonction. Nous pouvons simplement écrire un exemple :

(lambda x:x**2)(5)

sortie :

25

Filtrer les éléments de la liste

Alors, comment filtrer les éléments dans la liste ? Ici, vous devez combiner la fonction lambda et la méthode filter(), ainsi que le format syntaxique de la méthode filter() :

filter(function, iterable)
  • function -- fonction de jugement
  • iterable -- objet, liste ou dictionnaire itérable

Parmi eux, nous avons une telle liste :

import numpy as np
yourlist = list(np.arange(2,50,3))

Parmi eux, nous voulons filtrer les éléments qui sont inférieurs à 100 après la puissance 2. Définissons une fonction anonyme, comme suit :

lambda x:x**2<100

Le résultat final est le suivant :

list(filter(lambda x:x**2<100, yourlist))

sortie :

[2, 5, 8]

Si vous rencontrez un processus de calcul complexe, l'éditeur vous recommande ici de personnaliser une fonction vous-même, mais s'il s'agit d'un processus de calcul simple, la fonction anonyme lambda est certainement le meilleur choix.

Utilisation combinée avec la fonction map()

La syntaxe de la fonction map() est similaire à la fonction filter() ci-dessus, comme la fonction anonyme suivante :

lambda x: x**2+x**3

Nous l'utilisons avec la méthode map() :

list(map(lambda x: x**2+x**3, yourlist))

sortie :

[12,
 150,
 576,
 1452,
 2940,
 5202,
 ......]

Bien sûr, comme nous l'avons mentionné précédemment, la fonction anonyme lambda peut accepter plusieurs nombres de paramètres. Nous pouvons l'essayer ici. Par exemple, il existe deux ensembles de listes,

mylist = list(np.arange(4,52,3))
yourlist = list(np.arange(2,50,3))

Nous utilisons également le. map(). Fonctionnement, le code est le suivant :

list(map(lambda x,y: x**2+y**2, yourlist,mylist))

output : combinaison de la méthode

[20,
 74,
 164,
 290,
 452,
 650,
 884,
 1154,
......]

et apply(). La méthode

apply() est davantage utilisée dans les tables de données Pandas, et l'anonymat lambda est introduit dans l'application. (), nous créons une nouvelle table de données, comme indiqué ci-dessous :

myseries = pd.Series(mylist)
myseries

sortie :

04
17
2 10
3 13
4 16
5 19
6 22
7 25
8 28
......
dtype: int32

L'utilisation de la méthode apply() est légèrement différente des deux précédentes pour la méthode map() et le filtre. (), nous devons convertir l'objet itérable. Mettez-le dedans, et apply() ici n'a pas besoin de :

myseries.apply(lambda x: (x+5)/x**2)

sortie :

0 0.562500
1 0.244898
2 0.150000
3 0.106509
4 0.082031
5 0.066482
6 0.055785
7 0.048000
......
dtype: float64

Et lorsque vous rencontrez des données de la table DataFarme, la même opération est effectuée

df = pd.read_csv(r'Dummy_Sales_Data_v1.csv')
df["Sales_Manager"] = df["Sales_Manager"].apply(lambda x: x.upper())
df["Sales_Manager"].head()

sortie :

0PABLO
1PABLO
2KRISTEN
3ABDUL
4 STELLA
Name: Sales_Manager, dtype: object

et via la méthode apply() Le traitement est plus rapide que d'utiliser directement la méthode str.upper() ! !

Scénarios qui ne conviennent pas à l'utilisation

Alors quels sont les scénarios qui ne conviennent pas à l'utilisation ? Alors tout d'abord, la fonction lambda est une fonction anonyme et ne convient pas pour l'attribuer à une variable. Par exemple, dans le cas suivant :

squared_sum = lambda x,y: x**2 + y**2
squared_sum(3,4)

En comparaison, il vaut mieux personnaliser une fonction pour le traitement :

def squared_sum(x,y):
return x**2 + y**2

squared_sum(3,4)

. sortie :

25

Lorsque nous rencontrons la situation suivante, nous pouvons simplifier légèrement le code :

import math
mylist = [10, 25, 40, 49, 65, 81]
sqrt_list = list(map(lambda x: math.sqrt(x), mylist))
sqrt_list

sortie :

[3.16227766, 5.0, 6.324555320, 7.0, 8.062257748, 9.0]

Nous pouvons le simplifier en :

import math
mylist = [10, 25, 40, 49, 65, 81]
sqrt_list = list(map(math.sqrt, mylist))
sqrt_list

sortie :

[3.162277, 5.0, 6.324555, 7.0, 8.062257, 9.0]

S'il s'agit d'une fonction intégrée dans Python, en particulier C'est un module utilisé pour l'arithmétique comme les mathématiques. Il n'a pas besoin d'être placé dans la fonction lambda et peut être directement extrait et utilisé

.

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