原文: https://blog.youkuaiyun.com/nigelyq/article/details/79283014
原因
翻阅原文: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
123456
在Python 3里,reduce() 函数已经被从全局名字空间里移除了,它现在被放置在fucntools 模块里
使用前需要先引用
>>> from functools import reduce
>>> arr = [1, 2, 3, 4, 5]
>>> reduce(lambda x, y : x+y, arr)
15
1234
本文探讨了Python3中reduce函数的变化,Guido原本计划移除lambda和reduce,最终仅移除了reduce,并将其置于functools模块中。文章详细介绍了在Python3中如何正确引用并使用reduce函数。
1898

被折叠的 条评论
为什么被折叠?



