[Route vers Python intermédiaire] Utiliser des expressions lambda

Lien vers le résumé

https://qiita.com/ganariya/items/fb3f38c2f4a35d1ee2e8

introduction

Afin d'étudier Python, j'ai copié une bibliothèque d'intelligence de groupe appelée acopy.

Dans acopy, de nombreuses grammaires et idiomes Python intéressants sont utilisés, et il est résumé que c'est utile parmi eux.

Cette fois, nous allons découvrir les expressions lambda Python.

Qu'est-ce qu'une expression lambda?

L'expression Lambda est un concept utilisé dans de nombreux autres langages de programmation et signifie ** fonction anonyme **. Il n'est pas nécessaire de donner un nom, ** lorsque la portée à utiliser est très petite **, ** une fonction anonyme est définie sur place et ignorée ** est une expression lambda.

En C ++, il peut être utilisé avec la notation []() {}.

Exemple d'expression lambda

L'expression lambda est exprimée sous la forme de «argument lambda: traitement». La caractéristique est qu'une valeur est toujours renvoyée à la suite du traitement.

Par exemple, créons une fonction add qui ajoute les arguments de deux entiers, et une fonction lm_add qui l'exprime comme lambda.

def add(x, y):
    return x + y


lm_add = lambda x, y: x + y

x = 10
y = 40

'''
50
50
'''
print(add(x, y))
print(lm_add(x, y))

La fonction lm_add se comporte de la même manière que la fonction add. Après avoir reçu les arguments $ x et y $ et calculé $ x + y $, il est renvoyé de force.

Vous pouvez utiliser des arguments de longueur variable comme vous le feriez pour une fonction normale.

f = lambda *args, **kwargs: print(args, kwargs)

'''
(10, 'a') {'hello': 'world'}
'''
f(10, 'a', hello='world')

Exemple d'utilisation

L'expression lambda est essentiellement utilisée uniquement dans une très petite portée (je pense qu'elle devrait l'être), qui est jetable et n'a pas besoin d'être nommée.

Par exemple

Il est souvent utilisé en combinaison avec des fonctions intégrées telles que. Particulièrement utilisé dans la programmation compétitive.

Par exemple, ce qui suit trie le tableau de taples dans l'ordre croissant par rapport à l'élément $ 1 $, et s'ils sont identiques, les trie encore par ordre croissant par l'élément $ 0 $.

tuples = [(10, -3), (4, 10), (-4, 13), (-20, -50), (-20, 1), (0, 0), (-22, -50)]

tuples = sorted(tuples, key=lambda x: (x[1], x[0]))

'''
[(-20, -50), (-22, -50), (10, -3), (0, 0), (-20, 1), (4, 10), (-4, 13)]
'''
print(tuples)

Puisqu'il n'est pas nécessaire de définir la fonction de comparaison ci-dessus en dehors de la portée, et parce que la position de la fonction devient éloignée et que la charge de suivre le processus est réduite, il semble préférable de la définir avec lambda.

finalement

J'ai regardé lambda. Surtout lors de la programmation de compétition avec Python. Je voudrais également utiliser l'expression lambda dans d'autres langues.

Tri avec des éléments $ 2 $ en Python (tri C ++, etc.) N'y a-t-il pas d'autre choix que de définir ʻeq, lt` dans la classe ... (j'espère que cela peut être fait avec lambda)

Les références

Recommended Posts

[Route vers Python intermédiaire] Utiliser des expressions lambda
[Route vers Python intermédiaire] Utiliser des opérateurs ternaires
Une route vers Python intermédiaire
Comment utiliser Python lambda
[Road to Intermediate] Comprendre les propriétés Python
[Route vers Python intermédiaire] Utiliser l'instruction if dans la notation d'inclusion de liste
Comment utiliser les expressions régulières en Python
[Route vers Python intermédiaire] Résumé du lien de l'article
Résumé de l'étude de Python pour utiliser AWS Lambda
[Introduction à Python] Utilisation de base des expressions lambda
python3: Comment utiliser la bouteille (2)
[Python] Comment utiliser la liste 1
[Route vers Python intermédiaire] Définir la fonction __getattr__ dans la classe
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
E-Cell 4 Intermédiaire facile à utiliser
Re: Python lambda est inutile ^ H ^ H ^ H ^ H ^ H Difficile à utiliser
[Python] Comment utiliser input ()
[Python] Comment utilisez-vous les expressions lambda? ?? [Gribouillis] [Suite-1]
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
[Road to Intermediate Python] Installer des packages en masse avec pip
[Road to Intermediate Python] Permet des opérations de comparaison pour des classes uniques
[Présentation de l'application Udemy Python3 +] 58. Lambda
Python: comment utiliser async avec
[Python] Comment utiliser la série Pandas
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
[Lambda] [Python] Publier sur Twitter depuis Lambda!
Road to Intermediate Linux: Network Edition
[Introduction à Python] Utilisons les pandas
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
Comment utiliser ChemSpider en Python
Python: Comment utiliser pydub (lecture)
Comment utiliser PubChem avec Python
Bloc-notes Jupyter facile à utiliser (Python3.5)
[Introduction à Python] Utilisons les pandas
Comment utiliser la fonction zip de python
Utiliser PostgreSQL avec Lambda (Python + psycopg2)
[Introduction à Python] Utilisons les pandas
[Python] Comment utiliser l'API Typetalk
[Road to Intermediate Python] Appelez une instance de classe comme une fonction avec __call__
[Route vers Python intermédiaire] Spécifiez dynamiquement la méthode d'exécution par nom de variable
Grammaire de base du système Python3 (comment utiliser les fonctions, la fermeture, la fonction lambda)
[Python] Résumé de l'utilisation des pandas
Utiliser l'impression dans l'expression lambda Python2
[Python] Utilisez des pandas pour extraire △△ qui maximise ○○
Comment installer et utiliser pandas_datareader [Python]
[Python] Road to snakes (1) Construction de l'environnement
[python] Comment utiliser __command__, explication des fonctions
Je veux utiliser jar de python
[Introduction à Python] Utilisons foreach avec Python
[Python] Comment utiliser import sys sys.argv
Un moyen simple d'utiliser Wikipedia avec Python