Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
名称错误:名称';减少';未在Python中定义_Python_Reduce_Python 3.2 - Fatal编程技术网

名称错误:名称';减少';未在Python中定义

名称错误:名称';减少';未在Python中定义,python,reduce,python-3.2,Python,Reduce,Python 3.2,我正在使用Python 3.2。我试过这个: xor = lambda x,y: (x+y)%2 l = reduce(xor, [1,2,3,4]) 并得到以下错误: l = reduce(xor, [1,2,3,4]) NameError: name 'reduce' is not defined 尝试将reduce打印到交互式控制台-出现以下错误: NameError: name 'reduce' is not defined Python 3.2中是否真的删除了reduce?如果

我正在使用Python 3.2。我试过这个:

xor = lambda x,y: (x+y)%2
l = reduce(xor, [1,2,3,4])
并得到以下错误:

l = reduce(xor, [1,2,3,4])
NameError: name 'reduce' is not defined
尝试将
reduce
打印到交互式控制台-出现以下错误:

NameError: name 'reduce' is not defined


Python 3.2中是否真的删除了
reduce
?如果是这样的话,还有什么选择呢?

它被移动到了。

在这种情况下,我认为以下是等效的:

l = sum([1,2,3,4]) % 2
唯一的问题是它会产生大量的数字,但这可能比重复的模运算要好。

您可以添加

from functools import reduce

使用reduce.

或使用six库之前

from six.moves import reduce

您需要从
functools
python包安装并导入reduce

@JBernardo,什么是正确的工具?@julio.alegria:Because.@IgnacioVazquez Abrams中引用的文章就如何以更可读的方式编写大多数案例提出了一些非常好的观点。对我来说,这是通过写
sum(dicts列表中项的项['key'])
。这应该是核心语言。前面的用户已经回答了这个问题,答案与他的答案相同。重复模运算有助于保持数字较小。除非你对很多数字求和,否则求和不会产生大的数字,所以在这种情况下是没有帮助的。特别是因为不这样做允许使用内置的sum函数,这将比用户定义函数的重复应用运行得快得多