PHpullh
학습 라이브러리/Python/map/filter/reduce

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합니다.

주의할 점

mapfilter는 이터레이터를 반환합니다. 결과를 여러 번 사용하려면 list()로 변환하세요.

자주 묻는 질문

map/filter/reduce란 무엇인가요?

함수형 프로그래밍의 기본 도구인 map , filter , reduce 를 활용합니다.

map/filter/reduce 학습 시 주의할 점은 무엇인가요?

map 과 filter 는 이터레이터를 반환합니다. 결과를 여러 번 사용하려면 list() 로 변환하세요.

Continue Learning

Python 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.