[Python学习笔记-002] lambda, map, filter and reduce

1. lambda

lambda, 即匿名函数,可以理解为跟C语言的宏类似。例如:

>>> max = lambda x, y: x if x > y else y
>>> max(2, 3)
3

而用C语言实现对应的宏就是:

#define max(x, y) ((x) > (y) ? (x) : (y))

注意:

  • lambda的主体必须是单个表达式而不是一些语句
>>> print2 = lambda x: sys.stderr.write(str(x) + '\n') # <--- YES
>>> print2('Oops')
Oops
5
>>> print2 = lambda x: print(str(x)) # <--- NO (because print() uses lambda actually)
>>> print2('Oops')
Oops
>>> 
  • 为了可读性,不要使用嵌套的lambda。例如:
>>> ((lambda x: (lambda y: x + y ** 2))(99))(3) # <--- BAD style
108
>>> 

2. map

3. filter

。。。

4. reduce

。。。

参考资料:

猜你喜欢

转载自www.cnblogs.com/idorax/p/9415248.html