PYTHON · 함수형
map/filter/reduce
함수형 프로그래밍의 기본 도구인 map, filter, reduce를 활용합니다.
함수형중급mapfilterreduce함수형
핵심 설명
함수형 프로그래밍의 기본 도구인 map, filter, reduce를 활용합니다.
Python code
from functools import reduce
# map: 각 요소에 함수 적용
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(f"제곱: {squared}") # [1, 4, 9, 16, 25]
# filter: 조건에 맞는 요소 선택
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(f"짝수: {evens}") # [2, 4]
# reduce: 누적 연산
total = reduce(lambda acc, x: acc + x, numbers, 0)
print(f"합계: {total}") # 15
# 실용적 활용
words = ["hello", "world", "python"]
lengths = list(map(len, words))
print(f"길이: {lengths}") # [5, 5, 6]
# 체이닝
result = reduce(
lambda acc, x: acc + x,
map(lambda x: x ** 2,
filter(lambda x: x % 2 == 1, range(10)))
)
print(f"홀수 제곱의 합: {result}") # 165
# 컴프리헨션 대안 (더 Pythonic)
result2 = sum(x**2 for x in range(10) if x % 2 == 1)
print(f"같은 결과: {result2}") # 165학습 팁
Python에서는 map/filter 대신 컴프리헨션을 사용하는 것이 더 Pythonic합니다.
주의할 점
map과 filter는 이터레이터를 반환합니다. 결과를 여러 번 사용하려면 list()로 변환하세요.
자주 묻는 질문
map/filter/reduce란 무엇인가요?
함수형 프로그래밍의 기본 도구인 map , filter , reduce 를 활용합니다.
map/filter/reduce 학습 시 주의할 점은 무엇인가요?
map 과 filter 는 이터레이터를 반환합니다. 결과를 여러 번 사용하려면 list() 로 변환하세요.
Continue Learning
Python 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.