美文网首页程序员
Python匿名函数 lambda表达式

Python匿名函数 lambda表达式

作者: 天凉玩个锤子 | 来源:发表于2019-10-07 19:37 被阅读0次

当我们在创建函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。这省去了我们挖空心思为函数命名的麻烦,也能少写不少代码,很多编程语言都提供这一特性。

Python语言使用lambda关键字来创建匿名函数。

为什么要用匿名函数?

  1. 程序一次性使用,不需要定义函数名,节省内存中变量定义空间
  2. 让程序更加简洁

格式

lambda arg, arg2, ... argN : expression using args

规则

  1. 必须有返回值
  2. 不能有return
  3. 可以零到多个参数

带参数匿名函数

>>> lambda x: x**3 #一个参数
>>> lambda x,y,z:x+y+z #多个参数

>>> lambda x,y=3: x*y #允许参数存在默认值

匿名函数调用

>>> c = lambda x,y,z: x*y*z
>>> c(2,3,4)
24

lambda返回的值,结合map,filter,reduce使用

filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

>>> filter(lambda x:x%3==0,[1,2,3,4,5,6])
[3, 6]
#等价于下面的列表推导式
>>> l = [x for x in [1,2,3,4,5,6] if x%3==0]
>>> l
[3, 6]

reduce()函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

>>> reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
15

map(fun,[arg]+)函数最少有两个参数,第一参数为一个函数名,第二个参数是对应的这个函数的参数(一般为一个或多个list)

>>>def fun(x,y,z):
...     return x*y*z
...
>>>list(map(fun,[1,2,3],[1,2,3],[1,2,3]))
>>>[1,8,27]

>>>s = [1,2,3]
>>>list(map(lambda x,y,z:x*y*z ,s,s,s))
>>>[1,8,27]

相关文章

  • Python之lambda表达式

    ---Python之lambda表达式(创建匿名函数) Python允许使用lambda关键字来创建匿名函数。 先...

  • python基础--匿名函数&高阶函数

    lambda表达式返回匿名函数 python使用lambda创建匿名函数,lambda的主题是一个表达式而不是代码...

  • lambda匿名函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • python函数

    匿名函数 python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。...

  • Python学习(十六)--lambda表达式、map和redu

    1.lambda表达式 python把lambda称作匿名函数,C#则直接称作lambda表达式(lambda表达...

  • python lambda 表达式

    匿名函数python 使用 lambda 来创建匿名函数。lambda只是一个表达式,函数体比def简单很多。la...

  • Python lambda函数

    lambda函数 在Python中,lambda函数是使用lambda表达式定义的单行匿名函数。它常用于将函数作为...

  • 让你更 Pythonic 的函数

    Pythonic:意思就是python代码很python lambda 表达式匿名函数(英语:anonymous ...

  • Python基础——匿名函数+作用域

    一、匿名函数:lambda 函数名 = lambda 参数: 表达式 1、有名函数 2、匿名函数lambda [ ...

  • lambda表达式

    什么是lambda表达式 lambda表达式的本质 lambda表达式是一种匿名函数,匿名函数是函数定义不绑定到任...

网友评论

    本文标题:Python匿名函数 lambda表达式

    本文链接:https://www.haomeiwen.com/subject/gadwuctx.html