NameError:名称'reduce'在Python中没有定义

我正在使用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中真的被删除吗? 如果是这样的话,还有什么办法呢?

它被转移到functools

你可以加

 from functools import reduce 

在使用reduce之前。

或者如果你使用六库

 from six.moves import reduce 

在这种情况下,我相信以下是等价的:

 l = sum([1,2,3,4]) % 2 

唯一的问题是它创造了大数字,但也许这比重复模操作更好?