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 == 0 为 True 的元素。
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)