Python匿名函数

匿名:就是没有名字。

匿名函数,即没有名字的函数

没有名字如何定义,如何调用,如果能调用,如何使用。

Python借助lambda表达式构建匿名函数。

格式:

Lambda参数列表:表达式

(Lambda x:x**2)(4)

#foo = lambda x:x+1

foo(1)

上下式等同:

#def foo(x):

    return x+1

foo(1)

使用关键字来定义匿名函数:

参数列表不需要小括号

冒号是分隔参数和表达式的

不需要return ,表达式的值就是匿名函数的返回值。

只能写在一行上面,被称为单行函数。

用途:在高阶函数传参时候,使用lambda表达式,往往能简化代码.

 

print((lambda x,y=3:x+y)(5))

print((lambda :0)())

print((lambda x,y=3:x+y)(5,6))

print((lambda x,*,y=30:x+y)(5))#y 使用的是缺省值。

print((lambda *args:(x for x in args))(*range(5)))

print((lambda *args:[x+1 for x in args])(*range(5)))

[1, 2, 3, 4, 5]

print((lambda *args:{x+1 for x in args})(*range(5)))

{1, 2, 3, 4, 5}

print([x for x in (lambda *args: map(lambda x: x+1,args))(*range(5))])

[1, 2, 3, 4, 5]

print([x for x in (lambda *args: map(lambda x: (x+1,args), args))(*range(5))])

 

[(1, (0, 1, 2, 3, 4)),
 (2, (0, 1, 2, 3, 4)),
 (3, (0, 1, 2, 3, 4)),
 (4, (0, 1, 2, 3, 4)),
 (5, (0, 1, 2, 3, 4))]
posted @ 2018-11-12 16:31  Python爱好者666  阅读(443)  评论(0)    收藏  举报