반응형
파이썬의 functools.reduce
함수는 리스트와 같은 iterable의 모든 요소를 누적하여 하나의 값을 생성하는 데 사용됩니다.
일반적으로 reduce
함수는 두 개의 인수를 받는 함수를 적용하여 iterable의 요소를 순차적으로 처리합니다.lambda
함수를 사용하여 reduce
를 활용하는 방법을 몇 가지 예제로 설명하겠습니다.
1. functools.reduce
함수 사용법
functools.reduce
는 다음과 같은 형식으로 사용됩니다:
functools.reduce(function, iterable[, initializer])
function
: iterable의 요소들을 처리하는 데 사용할 함수입니다. 이 함수는 두 개의 인수를 받아야 합니다.iterable
: 누적 작업을 수행할 iterable 객체입니다.initializer
(선택적): 초기값을 설정할 수 있으며, 이 경우 첫 번째 요소와 함께 연산에 사용됩니다.
2. 예제
예제 1: 리스트의 합계 구하기
lambda
함수를 사용하여 합계 구하기
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# 리스트의 합계를 구함
total = reduce(lambda x, y: x + y, numbers)
print(total) # 출력: 15
예제 2: 리스트의 곱 구하기
lambda
함수를 사용하여 곱 구하기
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# 리스트의 곱을 구함
product = reduce(lambda x, y: x * y, numbers)
print(product) # 출력: 120
예제 3: 리스트의 최댓값 구하기
lambda
함수를 사용하여 최댓값 구하기
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# 리스트의 최댓값을 구함
max_value = reduce(lambda x, y: x if x > y else y, numbers)
print(max_value) # 출력: 5
예제 4: 문자열 연결
lambda
함수를 사용하여 문자열 연결하기
from functools import reduce
strings = ['Hello', ' ', 'World', '!']
# 문자열 리스트를 연결
result = reduce(lambda x, y: x + y, strings)
print(result) # 출력: Hello World!
예제 5: 리스트의 합을 구하면서 초기값 설정하기
lambda
함수를 사용하여 초기값 설정
from functools import reduce
numbers = [1, 2, 3, 4, 5]
# 초기값을 10으로 설정하여 리스트의 합을 구함
total = reduce(lambda x, y: x + y, numbers, 10)
print(total) # 출력: 25
3. 요약
functools.reduce
함수는 두 인수를 받는 함수를 사용하여 iterable의 요소들을 누적 처리합니다.lambda
함수를 사용하여 간결하게reduce
함수에 필요한 누적 함수를 정의할 수 있습니다.- 리스트의 합계, 곱, 최댓값 계산 및 문자열 연결 등 다양한 작업에 활용할 수 있습니다.
이와 같은 방법으로 functools.reduce
와 lambda
함수를 결합하여 파이썬에서 다양한 누적 작업을 손쉽게 처리할 수 있습니다.
반응형
'언어 > Python' 카테고리의 다른 글
[ Python ] 파이썬의 딕셔너리(dictionary)와 세트(set) comprehension (0) | 2024.07.05 |
---|---|
[ Python ] 리스트 함축(List Comprehension) 사용하기 (0) | 2024.07.04 |
[ Python ] reduce()와 일반 함수 사용하기 (0) | 2024.07.04 |
[ Python ] 리스트에서 데이터 가져오기 (0) | 2024.07.04 |
[ Python ] 리스트 (List) 수정하기 (0) | 2024.07.04 |