Python,lambda,lambda表示什么

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: