Solve Reduce が Python で定義されていない
ときどき、Not Defined
エラー メッセージ、さらには NameError
に直面することがよくあります。 これらのエラー メッセージは典型的なものであり、Python コード内で名前が付けられていることを簡単に理解していれば、簡単に解決できます。
NameError
および Not Defined
エラーは、存在しない変数、バインディング、関数、またはライブラリに起因します。 このコンテキストでは、reduce
関数はコード内に存在しません。
この記事では、Python コード内の reduce is not defined
エラーを解決する方法について説明します。
functools
を使用して Python で NameError: name 'reduce' is not defined
を解決する
reduce()
関数 は、リスト内の各要素に対して ラムダ関数 を使用して、リストから単一の値を計算するのに役立ちます。 reduce()
関数は、配列から現在の要素を取得し、リスト内のすべての要素を通過するまで現在の値と結合または比較することによって値を構築します。
Python 3 より前では、reduce()
関数は組み込み関数として機能していました。 したがって、リスト内のすべての要素を合計する以下のコード スニペットは機能します。
def anon(x, y):
return x + y
sum = reduce(anon, [1, 2, 3, 4])
print(sum)
ただし、上記のコードを実行すると、次のエラーが発生します。
Traceback (most recent call last):
File "c:\Users\akinl\Documents\HTML\python\txt.py", line 2, in <module>
l = reduce(anon, [1,2,3,4])
NameError: name 'reduce' is not defined
これは、reduce()
が組み込み関数ではなく、functools
と呼ばれる組み込みライブラリ内の関数であり、高階関数と呼び出し可能なオブジェクトに対する操作が含まれているためです。 reduce()
は高階関数であるため、存在することは理にかなっています。
reduce() は別の関数を引数に取るので高階関数です。 reduce()
を利用するには、functools
をインポートする必要があります:
import functools
def anon(x, y):
return x + y
sum = functools.reduce(anon, [1, 2, 3, 4])
print(sum)
コードの出力:
10
コード内で from
キーワードを使用して reduce
をインポートするのを簡単にすることができます。
from functools import reduce
def anon(x, y):
return x + y
sum = reduce(anon, [1, 2, 3, 4])
print(sum)
コードの出力:
10
コード内に reduce is not defined
エラーがなくなり、そのようなエラーが発生した場合に何を探すべきかを理解できるようになりました。
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn関連記事 - Python Error
- AttributeError の解決: 'list' オブジェクト属性 'append' は読み取り専用です
- AttributeError の解決: Python で 'Nonetype' オブジェクトに属性 'Group' がありません
- AttributeError: 'generator' オブジェクトに Python の 'next' 属性がありません
- AttributeError: 'numpy.ndarray' オブジェクトに Python の 'Append' 属性がありません
- AttributeError: Int オブジェクトに属性がありません
- AttributeError: Python で 'Dict' オブジェクトに属性 'Append' がありません