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)