ComputerLanguage_Program/PYTHON
[PYTHON] reduce
pbj0812
2020. 6. 2. 22:15
0. 목표
- python reduce 학습
1. 실습
1) 문제1 : 아래 리스트 내부에 존재하는 숫자들을 전부 합하여라.
test = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(1) 방법1 : for 문을 통한 해결
- 결과 : 55
result = 0
for i in test:
result = result + i
print(result)
(2) 방법2 : reduce 사용
- 내장함수가 아니기에 호출 필요
- 결과 : 55
* 사용방법 : reduce(함수, 리스트, 초기값(생략가능))
from functools import reduce
result = reduce((lambda x, y : x + y), test)
print(result)
2) 문제2 : 아래 dict의 age의 합을 구하여라.
test2 = [{'name' : 'a', 'age' : 1}, {'name' : 'b', 'age' : 2}, {'name' : 'c', 'age' : 3}]
- reduce를 사용한 해결
- 초기값 0을 적어주지 않으면 에러 발생
result2 = reduce((lambda x, y : x + y['age']), test2, 0)
print(result2)
- 결과 : 6
3) 응용
- 결과 : 55
test3 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def test(inp1, inp2):
return inp1 + inp2
result3 = reduce(test, test3)
print(result3)
2. 참고
- (파이썬) functools 모듈의 reduce 함수
- 맵 & 필터함수