Maison >développement back-end >Tutoriel Python >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 :
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
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)
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.
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, ......]
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() ! !
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!