最近学习到的python匿名函数lambda。MATLAB中也有匿名函数的用法,整理对比记录一下。
python lambda函数
lambda函数
python 使用 lambda 来创建匿名函数。
- lambda只是一个表达式,函数体比def简单很多。
- lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
- lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
- 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
用法:
lambda 参数:表达式
举例:
g = lambda x:x+1
lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,等价于函数:
def g(x):
return x+1
filter()
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
filter()接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判断,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
注意:pyhton2返回列表,python3返回迭代器对象。因此在python3中如果要将filter后的结果返回列表,要加list。
filter(function, iterable)
第一个参数function即为判断过滤的条件,第二个参数iterable即待过滤的对象。
举例:
def is_odd(n):
return<