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
唯一的问题是它创造了大数字,但也许这比重复模操作更好?