[PYTHON] Je suis tombé sur une expression lambda alors que je m'inquiétais de la fonctionnalisation

1️⃣ Aperçu

Je me suis souvent demandé: «Est-ce que le code que j'écris maintenant est une fonction, ou devrais-je l'écrire directement dans le main: en pensant:», mais à ce moment-là, je suis tombé sur une expression lambda et c'était C'est très facile à manipuler, et j'ai pu le mettre en place de manière compacte lorsque j'ai examiné l'ensemble du code, donc j'écrirai un article avec un mémorandum. : main_écriture:

2️⃣ À propos de Lambda

Je voudrais expliquer l'expression lambda avec du code. Aussi, cette fois, je traiterai de l'addition comme un exemple simple, mais j'aimerais expliquer comment écrire du code pratique dans la section suivante.

python


def hoge(num1: int, num2: int):
    num = num1 + num2
    return num

Comme ça, même une fonction qui fait un simple ajout doit ajouter `` retour '' à la fin. De plus, lors de l'exécution de la fonction ci-dessus,

python


print(hoge(2, 6))
# 8

Je pense que cela sera confirmé en insérant une instruction d'impression '' '' afin de confirmer si la fonction est traitée correctement. Cependant, si vous n'avez pas effectué de traitement compliqué pour en faire une fonction, ou si vous ne voulez pas utiliser cette fonction ailleurs, vous pouvez l'écrire de manière un peu plus compacte. Dans un tel cas, vous pouvez utiliser l'expression lambda! L'addition ci-dessus est décrite par l'expression lambda comme suit.

python


print((lambda num1, num2:num1 + num2)(2, 6))
# 8

Explication de l'expression lambda: (nom de l'argument lambda: traitement de l'argument) (valeur requise pour le calcul) Avec une telle description, c'était très facile à lire et j'ai pu le coder de manière compacte: blush: Il est également possible de créer une expression lambda avec des arguments en l'affectant à une variable.

python


hoge = lambda num1, num2:num1 + num2
print(hoge(2, 6))
# 8

De plus, personnellement, c'est plutôt cool de pouvoir coder dans le style lambda: sourire: (On dirait quelqu'un qui peut le faire ...)

3️⃣ Qu'est-ce que le codage lambda pratique?

Si vous gardez l'explication de l'élément ci-dessus, il semble que ce sera "Cela ne change pas beaucoup même si vous l'écrivez avec une fonction!: Grimaçant:", donc j'aimerais réfléchir à la façon de démontrer la vraie valeur de l'expression lambda ici. Je vais!

Par exemple ...

python


hoge_list = [3, -5, 10, 6, -2, -1]

Si vous souhaitez trier les valeurs par ordre croissant avec les valeurs négatives supprimées de cette liste, utilisez l'expression lambda ...

python


print(sorted(filter(lambda num_plus: num_plus >= 0, hoge_list)))
# [3, 6, 10]

Avec le sentiment que, la première fonction triée '' exécute le processus d'arrangement dans l'ordre croissant, et la fonction de filtre '' décrit les conditions comme une instruction if, donc c'est très facile. Peut être décrit dans! : tada:

Résumé

En utilisant l'expression lambda, le code peut être exprimé de manière compacte et facile à lire car il n'est pas nécessaire de se soucier d'écrire l'instruction for et if, et cela semble être utile même si vous hésitez à en faire une fonction. , Je voudrais l'utiliser de plus en plus lorsque je rencontre une situation où je peux utiliser l'expression lambda! : muscle:

Recommended Posts

Je suis tombé sur une expression lambda alors que je m'inquiétais de la fonctionnalisation
Ce qui m'inquiétait lors de l'affichage d'images avec matplotlib
Où j'étais inquiet pour heroku
expression lambda de python ...
Éléments à prendre en compte lors de la mise en œuvre d'Airflow avec docker-compose
Une histoire à laquelle j'étais accro à appeler Lambda depuis AWS Lambda.
Une histoire que j'ai corrigée lorsque j'ai obtenu le journal Lambda de Cloudwatch Logs
Je suis tombé sur un filtre d'image avec un nom clairement japonais appelé filtre Kuwahara, et quand je l'ai essayé, c'était incroyable, alors je vais le présenter.
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
J'ai une question sur les blancs
Dans IPython, quand j'ai essayé de voir la valeur, c'était un générateur, donc je l'ai inventé quand j'étais frustré.