Python3不存在reduce函数

原文: https://blog.csdn.net/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 "", line 1, in
    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

 

你可能感兴趣的:(Python)