我们可以创建匿名函数,称为 lambda 函数。 Lambda 函数与常规 Python 函数不同,它们源自 Lambda 演算。 它允许您编写非常简短的函数。
Lambda 函数示例
此代码显示 lambda 函数的用法:
#!/usr/bin/env python
f = lambda x : 2 * x
print f(3)
Lambda 函数从不使用return
语句,它总是返回。 Lambda 函数可能包含if
语句:
#!/usr/bin/env python
f = lambda x: x > 10
print(f(2))
print(f(12))
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 函数不支持语句块。
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
为真的元素。
reduce
函数
函数reduce(function, iterable)
从左到右将函数应用在iterable
的各个项目上。 例:
#!/usr/bin/env python
list = [1,2,3,4,5]
s = reduce(lambda x,y: x+y, list)
print(s)
在这种情况下,表达式始终为真,因此它简单地汇总了列表中的元素。 另一个例子:
#!/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)