Python,lambda,lambda表示什么
1.lambda是什么?
func=x:x 1
print(func(1))
#2
print(func(2))
#3
上面的等价于下面的函数
定义函数(x):
返回(x 1)
可以认为lambda作为一个表达式,定义了一个匿名函数。上面例子中的代码X是入口参数,x 1是函数体。Lambda在这里简化了函数定义的书写形式。代码更加简洁,但是函数的定义更加直观易懂。
在Python中,也有几个定义良好的全局函数,比如filter、map、reduce,使用起来很方便。
从functools导入减少
foo=[2,18,9,22,17,24,8,12,27]
print(list(filter(lambda x:x % 3==0,foo)))
#[18, 9, 24, 12, 27]
print (list(map(lambda x: x * 2 10,foo)))
#[14, 46, 28, 54, 44, 58, 26, 34, 64]
print (reduce(lambda x,y: x y,foo))
#139
可以直接做一个迭代。
打印(列表(map(lambda x: 3,range(0,4)))
# [3, 3, 3, 3]
# x不做任何变量,3可以是函数,X不需要是函数变量。
上面例子中map的作用非常简单明了。但是,Python一定要用lambda才能这么简洁吗?在对象遍历处理方面,Python的for.在.if语法已经很强大了,而且可读性比lambda好。
比如上面这个map的例子可以写成:print ([x * 2 10 for x in foo])非常简洁易懂。
filter的例子可以写成:print ([x for x in foo if x% 3==0])也比lambda的方式更容易理解。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。