lambda 表达式
2018-06-08
大连
晴
/python/2018/06/08/lambda.html
python
本文最近更新于 2018 年 06 月 12 日
Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了简单脚本和解释语言的易用性。
Python 编程简明教程 https://jsntn.com/python
在 Python 中,我们可以使用 lambda 表达式来创建匿名函数1。举例,我们要计算两个数的和,函数这样定义:
>>> def add(x, y):
return x + y
>>> add(1, 2)
3
而如果用 lambda 表达式的话,我们就可以直接使用:
>>> f = lambda x, y: x + y
>>> f(2, 3)
5
>>>
其中,f
定义了 lambda 表达式(即将 lambda 函数赋值给了变量 f
,用变量名来表示要使用的 lambda 表达式),x, y
是参数,:
后面的 x + y
是执行的操作。其实我们也可以不将 lambda 表达式赋值给变量,而直接执行2:
>>> (lambda x, y: x + y)(3, 4)
7
>>>
所以,我们会发现 lambda 省略了函数名,写法更简单,其实性能也更好,因为在调用时会绕过函数的栈分配。除此之外,lambda 存在的意义是什么呢?
其实简单来说,lambda 表达式通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用。
lambda 的语法是:
lambda [arg1[, arg2, ... argN]]: expression
一些注意事项:
一个练习:打印 100 以内的为 3 的倍数的数
方法一:
def func():
result = []
for i in xrange(100):
if i % 3 == 0:
result.append(i)
return result
方法二:
def func(x):
return x%3 == 0
filter(func,[i for i in xrange(100)])
方法三:
filter(lambda x:x%3==0,[i for i in xrange(100)])
扩展阅读:
- 关于 Python 中的 lambda,这可能是你见过的最完整的讲解
- 舉例講解 Python 的 lambda 語句聲明匿名函數的用法
- lambda 表达式有何用处?如何使用?
- 在 Python 中使用 lambda 高效操作列表的教程
- Think Python 2nd Edition by Allen B. Downey
- Why are Python lambdas useful?
- Lambda, filter, reduce and map
- Yet Another Lambda Tutorial
- Python Anonymous/Lambda Function
- 所谓匿名函数,即不需要定义函数,像表达式一样使用,不需要函数名。 [return]
- Using lambda Functions [return]
- Lambdas [return]
- Variables, expressions and statements [return]
关于作者
最近更新: