原因
因為
Guido
先生討厭reduce
。(Because Guido hates it. )
詳細過程請翻閱原文:www.artima.com/forums/flat…
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
複製程式碼