匿名函数

匿名函数
1,lambda的一般形式是关键字lambda后面跟一个或多个参数,紧跟一个冒号,以后是一个表达式。

2,lambda是一个表达式而不是一个语句。它能够出现在Python语法不允许def出现的地方。

3,作为表达式,lambda返回一个值(即一个新的函数)。lambda用来编写简单的函数,而def用来处理更强大的任务。

4,常用于为map()和filter()之类共同使用。
f = lambda x,y,z : x+y+z
print f(1,2,3)

g = lambda x,y=2,z=3 : x+y+z
print g(1,z=4,y=5)

输出结果为:
6
10

5,map函数可以在序列中映射函数进行操作。例如:
def inc(x):
return x+10

L = [1,2,3,4]
print map(inc,L)

print map((lambda x: x+10),L)

输出结果为:
[11, 12, 13, 14]
[11, 12, 13, 14]

6,列表解析可以实现map函数同样的功能,而且往往比map要快。例如:
print [x**2 for x in range(10)]
print map((lambda x: x**2), range(10))

输出结果为:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

7,列表解析比map更强大。例如:
print [x+y for x in range(5) if x%2 == 0 for y in range(10) if y%2 ==1]

输出结果为:
[1, 3, 5, 7, 9, 3, 5, 7, 9, 11, 5, 7, 9, 11, 13]

原文地址:https://www.cnblogs.com/liang545621/p/7523537.html