原因
因为
Guido
先生讨厌reduce
。(Because Guido hates it. )
详细过程请翻阅原文:http://www.artima.com/forums/flat.jsp?forum=106&thread=98196
Guido大大原计划把 lambda
, reduce
都干掉。
最后只干掉了 reduce
使用
首先在python3版本中,直接使用reduce()
的话,系统会报错,提示不存在reduce()
函数。
>>> arr = [1, 2, 3, 4, 5]
>>> reduce(lambda x, y : x+y, arr)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
reduce(lambda x, j : x+y, arr)
NameError: name 'reduce' is not defined
在Python 3里,reduce()
函数已经被从全局名字空间里移除了,它现在被放置在fucntools
模块里
使用前需要先引用
>>> from functools import reduce
>>> arr = [1, 2, 3, 4, 5]
>>> reduce(lambda x, y : x+y, arr)
15
网友评论