Python筆記|Python3中沒有reduce函式的原因

vimiix發表於2018-02-07

原因

因為 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
複製程式碼

我的個人部落格

相關文章