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
Это reduce действительно удалены в Python 3.2? Если это так, то какова альтернатива?
4 ответов:
Он был переведен в
functools.
в этом случае я считаю, что следующее эквивалентно:
l = sum([1,2,3,4]) % 2единственная проблема с этим заключается в том, что он создает большие числа, но, может быть, это лучше, чем повторные операции по модулю?
Comments