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
。。。
参考资料: