为什么 Python 的 lambda 表达式不能包含语句?

为什么 Python 的 lambda 表达式不能包含语句?

是的,Python 的 lambda 表达式不能包含语句。在深入研究其原因之前,让我们先了解什么是 Lambda,它的表达式和语句。

Lambda 表达式允许定义匿名函数。lambda 函数是一种无名函数。让我们看一下其语法 –

lambda arguments: expressions

关键字 lambda 定义了一个 lambda 函数。lambda 表达式包含一个或多个参数,但只能有一个表达式。

阅读更多:Python 教程

Lambda 示例

让我们看一个例子 –

myStr = "Thisisit!"
(lambda myStr : print(myStr))(myStr)

输出

Thisisit!

使用 Lambda 按另一个列表的值对列表进行排序

在此示例中,我们将根据另一个列表的值对列表进行排序,即第二个列表将按排序顺序放置索引 –

# 两个列表
list1 = ['BMW', 'Toyota', 'Audi', 'Tesla', 'Hyundai']
list2 = [2, 5, 1, 4, 3]

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

# 基于 List2 对 List1 进行排序
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']

Lambda 表达式不能包含语句

我们已经看到了两个示例,其中我们使用了 Lambda 表达式。Python 的语法框架无法处理嵌套在表达式中的语句,因此 Lambda 表达式不能包含语句。

在 Python 中,函数已经是一等对象,并且可以在局部范围中声明。因此,使用 Lambda 而不是局部定义的函数的唯一优点是,您不需要为函数发明一个名称,即它是一个匿名函数,但这只是一个函数对象分配给的局部变量!

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程