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?
Fue movido a functools
.
O si usa la biblioteca de seis
from six.moves import reduce
Puedes añadir
from functools import reduce
antes de usar el reducir.