Solve Reduce는 Python에서 정의되지 않음

Olorunfemi Akinlua 2023년6월21일
Solve Reduce는 Python에서 정의되지 않음

때때로 정의되지 않음 오류 메시지, 보다 광범위하게는 NameError 오류 메시지가 표시됩니다. 이러한 오류 메시지는 일반적이며 Python 코드 내에서 이름이 지정된 내용을 간단히 이해하면 쉽게 해결할 수 있습니다.

NameError정의되지 않음 오류는 존재하지 않는 변수, 바인딩, 함수 또는 라이브러리에서 비롯됩니다. 이 컨텍스트에서 reduce 기능은 코드 내에 존재하지 않습니다.

이 기사에서는 Python 코드 내에서 reduce is not defined 오류를 해결하는 방법에 대해 설명합니다.

functools를 사용하여 Python에서 NameError: name 'reduce'가 정의되지 않음 해결

reduce() function은 목록 내의 각 요소에서 lambda function을 사용하여 목록에서 단일 값을 계산하는 데 도움이 됩니다. 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 Akinlua avatar Olorunfemi Akinlua avatar

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