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
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.
Regardons un exemple −
myStr = "Thisisit!" (lambda myStr : print(myStr))(myStr)
Thisisit!
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)
List1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai'] List2 (indexes) = [2, 5, 1, 4, 3] Sorted List = ['Audi', 'BMW', 'Hyundai', 'Tesla', 'Toyota']
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!