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