without haste but without rest
[python] reduce 함수 이해하기 본문
ps를 하다보면 입력 과정에서 map은 수도없이 많이 쓰게 돼서 꽤 익숙해지는데,
reduce는 생각보다 사용할 일이 적어서인지 자꾸 까먹는다.
reduce 사용 예시
2차원 리스트 1차원으로 이어붙여 만들기
from functools import reduce
array_2dim = [[x]*x for x in range(5)]
array_1dim = reduce(lambda x, y: x+y, array_2dim)
print(array_2dim)
#[[], [1], [2, 2], [3, 3, 3], [4, 4, 4, 4]]
print(array_1dim)
#[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]
reduce 함수로 2차원 리스트의 각 요소(1차원 리스트)들을 더하고 반환했다.
*파이썬에서 리스트 + 연산은 리스트를 이어 붙인다.
간단한 맵리듀스 예제
from functools import reduce
arr = [i for i in range(10)]
print(arr)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
ans = list(map(lambda x: x+1, arr))
print(ans)
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
ans = reduce(lambda x, y: x+y, ans)
print(ans)
# 55
'ProgrammingLanguage > Python' 카테고리의 다른 글
[python] re 라이브러리로 특정 문자열만 남기기 (0) | 2021.07.22 |
---|---|
[python] 10진수 -> 2진수 변환, 2진수 -> 10진수 변환 (0) | 2021.07.22 |
[python] 비트마스크 기본 연산 정리 (0) | 2021.07.18 |
[python] xor 연산자 ^= (0) | 2021.07.07 |
[python] 다중 조건으로 정렬하기 - lambda (0) | 2021.06.24 |
Comments