Python lambda 函数

我们可以创建匿名函数,称为 lambda 函数。lambda 函数与普通的 Python 函数不同,它们来自 Lambda Calculus。它允许你编写非常短的函数。

Python lambda 函数示例

此代码显示了 lambda 函数的用法:

#!/usr/bin/env python
 
f = lambda x : 2 * x
print f(3)

return 语句从不在 lambda 函数中使用,因为 lambda 总是会返回数据。lambda 函数可以包含if 语句

#!/usr/bin/env python
 
f = lambda x: x > 10
print(f(2))
print(f(12))

Python map 函数

map 的定义是 map(function,iterable)。它将函数应用于可迭代对象中的每个元素。我们可以在带有列表的 lambda 函数上使用 map()

#!/usr/bin/env python
 
list = [1,2,3,4,5]
squaredList = map(lambda x: x*x, list)
print(squaredList)

在使用 lambda 函数的任何地方,你都可以使用普通函数。lambda 函数不是一个语句,它是一个表达式。lambda 函数不支持语句块。

Python filter 函数

filter(function,iterable) 从元素中创建一个新列表,函数返回 True。例:

#!/usr/bin/env python
 
list = [1,2,3,4,5,6,7,8,9,10]
newList = filter(lambda x: x % 2 == 0, list)
print(newList)

返回列表返回仅包含 lambda 表达式 lamba x:x%2 == 0True 的元素。

reduce 函数

reduce 函数 reduce(function, iterable) 从左到右累加两个参数到可迭代对象的元素。例:

#!/usr/bin/env python
 
list = [1,2,3,4,5]
s = reduce(lambda x,y: x+y,  list)
print(s)

在这种情况下,表达式始终为 True,因此它只是累加列表的元素。另一个例子:

#!/usr/bin/env python
 
list = [10,6,7,5,2,1,8,5]
s = reduce(lambda x,y: x if (x > y) else y, list)
print(s)