30

私はPythonを初めて使用します。次のコードの何が問題になっているのか教えてください。実行すると、「NameError:グローバル名'reduce'が定義されていません」というエラーメッセージが表示されました。グーグルに聞いたけどダメだ。:(

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

if __name__=='__main__':
    main()
4

2 に答える 2

61

私はそれを推測するつもりです:

  1. Python 3を使用していて、
  2. Python2用に設計されたチュートリアルに従っています。

このreduce関数は、一般的に使用されていないため、Python 3の組み込み関数から削除されました。functoolsモジュールで引き続き使用できるため、次のことができます。

import functools

def main():
    def add(x,y): return x+y
    functools.reduce(add, range(1, 11))
于 2012-04-19T10:46:55.233 に答える
11

また

# Import reduce from functools
from functools import reduce

reduce組み込み関数のように使用できます。

def main():
    def add(x,y): return x+y
    reduce(add, range(1, 11))
于 2018-02-28T09:11:10.377 に答える