python reduce python-3.2

NameError: name ''reduce'' no está definido en Python



python-3.2 (4)

Estoy usando Python 3.2. Intenté esto:

xor = lambda x,y: (x+y)%2 l = reduce(xor, [1,2,3,4])

Y obtuve el siguiente error:

l = reduce(xor, [1,2,3,4]) NameError: name ''reduce'' is not defined

La impresión probada se reduce a la consola interactiva: obtuve este error:

NameError: name ''reduce'' is not defined


¿ reduce realmente se elimina en Python 3.2? Si ese es el caso, ¿cuál es la alternativa?


En este caso, creo que lo siguiente es equivalente:

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

El único problema con esto es que crea números grandes, ¿pero quizás eso es mejor que las operaciones de módulo repetidas?



O si usa la biblioteca de seis

from six.moves import reduce


Puedes añadir

from functools import reduce

antes de usar el reducir.