NameError: global name 'reduce' is not defined

python, reduce

Solution

I'm going to guess that:

- You are using Python 3, and

- You are following a tutorial designed for Python 2.

The `reduce` function, since it is not commonly used, was removed from the built-in functions in Python 3. It is still available in the `functools` module, so you can do:

import functools

def main():
    def add(x,y): return x+y
    functools.reduce(add, range(1, 11))

Problem

When I try this code in Python 3.x, I get an error message that says "NameError: global name 'reduce' is not defined". ``` def main(): def add(x,y): return x+y reduce(add, range(1, 11)) if __name__=='__main__': main() ``` Why?

Original source

Related problems