본문 바로가기
Programing/Python

Python Reduce() 사용 방법?

by 멍멍돌이야 2023. 3. 8.
반응형

How to Use the Python Reduce() function to Reduce a List into a Single Value

 

이 자습서에서는 Python reduce() 함수를 사용하여 목록을 단일 값으로 줄이는 방법을 배웁니다.

 

1. Reducing a list

경우에 따라 목록을 단일 값으로 줄이고 싶을 수 있습니다. 예를 들어 다음과 같은 숫자 목록이 있다고 가정합니다.

scores = [75, 65, 80, 95, 50]

점수 목록에 있는 모든 요소의 합계를 계산하려면 다음과 같이 for 루프를 사용할 수 있습니다.

scores = [75, 65, 80, 95, 50]

total = 0

for score in scores:
    total += score

print(total)

Output:

365

이 예에서는 전체 목록을 목록의 모든 요소의 합계인 단일 값으로 줄였습니다.

 

2. Python reduce() 함수 소개

파이썬은 보다 간결한 방식으로 목록을 줄일 수 있는 reduce()라는 함수를 제공합니다.

다음은 reduce() 함수의 구문입니다.

reduce(fn,list)

reduce() 함수는 두 인자의 fn 함수를 리스트의 항목에 왼쪽에서 오른쪽으로 누적 적용하여 리스트를 하나의 값으로 줄인다.

map() 및 filter() 함수와 달리 reduce()는 Python의 내장 함수가 아닙니다. 실제로 reduce() 함수는 functools 모듈에 속합니다.

reduce() 함수를 사용하려면 파일 상단에서 다음 명령문을 사용하여 functools 모듈에서 가져와야 합니다.

from functools import reduce

이후 자습서에서 모듈 및 사용 방법에 대해 자세히 알아볼 것입니다.

다음은 reduce() 함수를 사용하여 점수 목록의 요소 합계를 계산하는 방법을 보여줍니다.

from functools import reduce

def sum(a, b):
    print(f"a={a}, b={b}, {a} + {b} ={a+b}")
    return a + b


scores = [75, 65, 80, 95, 50]
total = reduce(sum, scores)
print(total)

Output:

a=75, b=65, 75 + 65 = 140
a=140, b=80, 140 + 80 = 220
a=220, b=95, 220 + 95 = 315
a=315, b=50, 315 + 50 = 365
365

출력에서 명확하게 알 수 있듯이 reduce() 함수는 목록의 두 요소를 왼쪽에서 오른쪽으로 누적하여 추가하고 전체 목록을 단일 값으로 줄입니다.

코드를 더 간결하게 만들기 위해 sum() 함수를 정의하는 대신 람다 식을 사용할 수 있습니다.

from functools import reduce

scores = [75, 65, 80, 95, 50]

total = reduce(lambda a, b: a + b, scores)

print(total)

 

3. Summary

  • Python reduce() 함수를 사용하여 목록을 단일 값으로 줄입니다.

 

 

refreance: https://www.pythontutorial.net/python-basics/python-reduce-list/
728x90
반응형

댓글