python Lambda 表达式

匿名函数

  • lambda 函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方

    举个例子:

>>> def f(x,y):
...     return x*y
...
>>> f(2,3)
6
>>> g = lambda x,y:x*y
>>> g(2,3)
6
>>> g
<function <lambda> at 0x103e12c08>
  1. 使用python写一些执行脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。
  2. 对于一些抽象的,不会在别的地方再复用的函数,有时候给函数起个名字也是个难题,使用lambda不需要考虑命名的问题。
  3. 使用lambda在某些时候让代码更容易理解。
  4. lambda语句中,冒号前是参数,可以有多个,逗号分开。冒号后是返回值。lambda语句构建的其实是一个函数对象。

递归

>>> 5*4*3*2*1
120
>>> def f(n):
...     if n > 0:
...         return n*f(n-1)
...     if n == 0:
...         return 1
...
>>> f(5)
120
  • 但是递归不是那么好理解,所以由此我们引出reduce

reduce

需要定义一个函数来辅助reduce

>>> l = range(1,6)
>>> l
[1, 2, 3, 4, 5]
>>> def f(x,y):
...     return x*y
...
>>> reduce(f,l)
120

这里我们发现,其实定义f 这个函数没有什么必要,可以转换成lambda代替。

>>> reduce(lambda x,y:x*y, l)
120

这样就避免了没有意义的函数定义

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-01 11:42:12

python Lambda 表达式的相关文章

python lambda表达式简单用法【转】

python lambda表达式简单用法 1.lambda是什么? 看个例子: g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也可以这样使用: lambda x:x+1(1) >>>2 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为: 1 def g(x):2 return x+1 非常容易理解,在这里lambda简化了函数定义

Python Lambda表达式

lambda函数也叫匿名函数,即,函数没有具体的名称.先看一个例子: def f(x): return x**2 print f(4)   Python中使用lambda的话,写成这样: g = lambda x : x**2 print g(4) 那么,lambda表达式有何用处呢? lambda和普通函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别的地方调用.其实说的没错,lambda在Python这种动态的语言中确实没有起到什么惊天动地的作用,因为有很多的别的方法能有代

python — lambda表达式与内置函数

目录 1 lambda表达式 (匿名函数) 2 内置函数 1 lambda表达式 (匿名函数) 用于表示简单的函数 lambda表达式,为了解决简单函数的情况: def func(a1,a2): =====> func = lambda a1,a2:a1+a2 # 函数直接得到返回值,这里隐藏了return return a1+a2 简化 # 三元运算,为了解决简单的if else的情况,如: if 1 == 1: a = 123 else: a = 456 a = 123 if 1 == 1

python lambda表达式简单用法

转自:http://www.cnblogs.com/guigujun/p/6134828.html 习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: 1 2 3 4 5 6 7 8 # 普通条件语句 if 1 == 1:     name = 'wupeiqi' else:     name = 'alex'   # 三元运算 name = 'wupeiqi' if 1 == 1 else 'alex' 对于简单的函数,也存在一种简便的表示方式,即:lambda表达式

python lambda表达式的一些用法

#用lambda表达式来排序a=[{"name":"zhangsan","age":10},{"name":"lisi","age":15},{"name":"wangwu","age":6}]a.sort(key=lambda x:x['age'])print(a)#func相当于一个lambda表达式func=raw_inp

python lambda表达式的两种用处

1 用处1定义匿名函数 不带参数的: a = lambda : print("123") 带参数的 b = lambda x, y:x * y 2 当函数作为参数时,直接为该函数传参. def func1(m, n): return str(m + n) def func2(func): print("结果:" + func()) # 调用func2这种函数时,一般情况下,无法直接为作为参数的函数传参, # func2(func1(4,5)) #这样是不行的 #但是

Python lambda表达式与filter()函数,map()活用

1.与filter(),配合使用: In [1]: list(filter(lambda x:True if x % 3 == 0 else False, range(100))) Out[1]: [0, 3, 6, 9, 12, 15, ...... 93, 96, 99]#lambda x:True if x % 3 == 0 else False ,True if x % 3 == 0 else False是三元表达式 相当于如下: def func(x): if x%3 == 0: re

lambda表达式+python内置函数

传统的定义函数方式如下 def f1(): return 123 lambda表达式定义函数 f2 = lambda : 123 python3的内置函数 1.abs 绝对值 i = abs(-11) print (i) 输出结果是11 abs = absolute 2,all 循环参数,如果每个元素都为真,则返回为真 r = all([True, True]) print (r) 在python中 0 () [] ''和 None是False(空值都是假的) r = all(["123&quo

python中的lambda表达式与三元运算

1 >>> def add(x,y): #定义一个加法函数 2 return x+y #返回两个参数的相加的值 3 4 >>> z=f(3,4) 5 >>> print(z) 6 7 #调用加法函数返回7 7 >>> lambda x,y:x+y 8 <function <lambda> at 0x0000020F385B86A8> 9 #可以看到lambda是一个 function(函数)类对象 10 >