pbj0812의 코딩 일기

[PYTHON] reduce 본문

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 함수

 - 파이썬 reduce 함수 사용법

 - 맵 & 필터함수

'ComputerLanguage_Program > PYTHON' 카테고리의 다른 글

[PYTHON] next, send, iter  (0) 2020.06.07
[PYTHON] 삼항연산자  (0) 2020.06.06
[PYTHON] filter  (0) 2020.06.02
[PYTHON] map 사용하기  (0) 2020.06.02
[PYTHON] Debugging  (0) 2020.06.01
Comments