Pourquoi les expressions lambda de Python ne peuvent-elles pas contenir d'instructions ?

WBOY
Libérer: 2023-08-19 08:14:14
avant
1669 Les gens l'ont consulté

Pourquoi les expressions lambda de Python ne peuvent-elles pas contenir dinstructions ?

Oui, les expressions Python Lambda ne peuvent pas contenir d'instructions. Avant d’aborder les raisons, comprenons ce qu’est Lambda, ses expressions et ses déclarations.

Les expressions Lambda permettent de définir des fonctions anonymes. Une fonction Lambda est une fonction anonyme sans nom. Regardons la syntaxe −

lambda arguments: expressions
Copier après la connexion

Le mot-clé lambda définit une fonction lambda. Une expression lambda contient un ou plusieurs paramètres, mais elle ne peut avoir qu'une seule expression.

Exemple Lambda

Regardons un exemple −

myStr = "Thisisit!"
(lambda myStr : print(myStr))(myStr)
Copier après la connexion

Sortie

Thisisit!
Copier après la connexion

Utilisez Lambda pour trier une liste en fonction de la valeur d'une autre liste

Dans cet exemple, nous trierons la liste en fonction des valeurs d'une autre liste, c'est-à-dire que la deuxième liste sera triée par son index dans l'ordre de tri -

# Two Lists
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

print("List1 = \n",list1)
print("List2 (indexes) = \n",list2)

# Sorting the List1 based on List2
res = [val for (_, val) in sorted(zip(list2, list1), key=lambda x: x[0])]
print("\nSorted List = ",res)
Copier après la connexion

Sortie

List1 = 
 ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
List2 (indexes) = 
 [2, 5, 1, 4, 3]

Sorted List =  ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
Copier après la connexion

Les expressions Lambda ne peuvent pas contenir d'instructions

Nous avons vu deux exemples d'utilisation d'expressions Lambda ci-dessus. Les expressions Lambda de Python ne peuvent pas contenir d'instructions, car le cadre syntaxique de Python ne peut pas gérer les instructions imbriquées dans des expressions.

En Python, les fonctions sont déjà des objets de première classe et peuvent être déclarées en portée locale. Donc le seul avantage d'utiliser un lambda au lieu de définir la fonction localement est que vous n'avez pas besoin de donner un nom à la fonction, c'est-à-dire une fonction anonyme, mais c'est juste une variable locale qui est affectée à l'objet fonction !

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!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!