lambda函数的用法(Lambda 表达式有何用处如何使用)

本文目录
- Lambda 表达式有何用处如何使用
- Python 中的“lambda”是什么意思有什么作用如何使用
- python Lambda 形式的使用
- python lambda的用法
- python中使用lambda实现标准化
Lambda 表达式有何用处如何使用
简单来说,编程中提到的 lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数。这一用法跟所谓 λ 演算(题目说明里的维基链接)的关系,有点像原子弹和质能方程的关系,差别其实还是挺大的。
不谈形式化的 λ 演算,只说有实际用途的匿名函数。先举一个普通的 Python 例子:将一个 list 里的每个元素都平方:
map( lambda x: x*x, [y for y in range(10)] )
这个写法要好过
def sq(x):
return x * x
map(sq, [y for y in range(10)])
,因为后者多定义了一个(污染环境的)函数,尤其如果这个函数只会使用一次的话。而且第一种写法实际上更易读,因为那个映射到列表上的函数具体是要做什么,非常一目了然。如果你仔细观察自己的代码,会发现这种场景其实很常见:你在某处就真的只需要一个能做一件事情的函数而已,连它叫什么名字都无关紧要。Lambda 表达式就可以用来做这件事。
进一步讲,匿名函数本质上就是一个函数,它所抽象出来的东西是一组运算。这是什么意思呢?类比
a = [1, 2, 3]
和
f = lambda x : x + 1
,你会发现,等号右边的东西完全可以脱离等号左边的东西而存在,等号左边的名字只是右边之实体的标识符。如果你能习惯 [1, 2, 3] 单独存在,那么 lambda x : x + 1 也能单独存在其实也就不难理解了,它的意义就是给「某个数加一」这一运算本身。
现在回头来看 map() 函数,它可以将一个函数映射到一个可枚举类型上面。沿用上面给出的 a 和 f,可以写:
map(f, a)
也就是将函数 f 依次套用在 a 的每一个元素上面,获得结果 [2, 3, 4]。现在用 lambda 表达式来替换 f,就变成:
map( lambda x : x + 1, [1, 2, 3] )
会不会觉得现在很一目了然了?尤其是类比
a = [1, 2, 3]
r =
for each in a:
r.append(each+1)
Python 中的“lambda”是什么意思有什么作用如何使用
lambda就是匿名函数,就是没有名字的函数,来自于于函数式编程的概念; java7也是加这个,
举个例子
函数如下:
def f(x):
return x+1
print f(4)
用lambda的话,写成这样:
g = lambda x : x+1
print g(4)
延展阅读:
Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。
python Lambda 形式的使用
4.7.5. Lambda 形式
出于实际需要,有几种通常在函数式编程语言例如 Lisp 中出现的功能加入到了 Python。通过 lambda 关键字,可以创建短小的匿名函数。这里有一个函数返回它的两个参数的和: lambda a, b: a+b。 Lambda 形式可以用于任何需要的函数对象。出于语法限制,它们只能有一个单独的表达式。语义上讲,它们只是普通函数定义中的一个语法技巧。类似于嵌套函数定义,lambda 形式可以从外部作用域引用变量:
》》》 def make_incrementor(n):
... return lambda x: x + n
...
》》》 f = make_incrementor(42)
》》》 f(0)
42
》》》 f(1)
43
上面的示例使用 lambda 表达式返回一个函数。另一个用途是将一个小函数作为参数传递:
》》》 pairs = [(1, ’one’), (2, ’two’), (3, ’three’), (4, ’four’)]
》》》 pairs.sort(key=lambda pair: pair)
》》》 pairs
[(4, ’four’), (1, ’one’), (3, ’three’), (2, ’two
python lambda的用法
使用question时返回的值为bool
当为1时调用退出函数,当为0时调用一个默认的函数
lambda : None
就是一个什么都不作的匿名函数
其实完全不需要写成这样的,我认为是作者希望增加代码的复杂性而已.
可以写成
if button:
self.quit()
python中使用lambda实现标准化
lambda函数一般是在函数式编程中使用的。通举个栗子,对于这样一个list L,求L中大于3的元素集合L = [1, 2, 3, 4, 5]对于过程式编程,通常会这么写L3 = for i in L:if i 3:L3.append(i)而对于函数式变成,只需要给filter函数一个判断函数就行了def greater_than_3(x):return x 3L3 = filter(greater_than_3, L)由于这个判断函数非常简单,用lambda来实现就非常简洁、易懂L3 = filter(lambda x: x 3, L)这是个很简单的例子,可以看出lambda的好处。lambda函数更常用在map和reduce两个函数中。当然,lambda函数也不见得都好,它也可以被用得很复杂,比如这个问题的答案,可以用python这样一句解决,这个lambda函数看起来那的确是挺辛苦的。

更多文章:
direct object是什么意思(急急!!!direct object和indirect object怎么用)
2026年10月10日 08:40
struts2 el表达式(EL表达式和struts 2 OGNL区别)
2026年10月10日 08:30
截取字符串中的一部分js(用js 实现怎样从一个长字符串中截取特定的字符串)
2026年10月10日 07:40







