파이썬 map, filter, reduce 함수 완전정리: 실전 예제와 활용 꿀팁!
파이썬 map, filter, reduce 함수, 언제 어떻게 써야 할지 헷갈리셨나요? 이 글 하나로 map, filter, reduce의 기본 개념부터 실전 예제, 람다 함수와의 조합, 리스트 컴프리헨션과의 차이, 실무 활용 팁까지 완벽하게 정리해드립니다. 이 세 함수는 데이터 변환, 필터링, 누적 연산 등 반복문보다 간결하고 효율적인 코드를 작성할 수 있게 해주는 파이썬 함수형 프로그래밍의 핵심 도구입니다.
많은 분들이 "map과 filter의 차이는?", "reduce는 언제 쓰는 게 좋을까?", "리스트 컴프리헨션과 비교하면?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결하세요!
📋 목차
🔍map, filter, reduce란?
이 함수들은 함수를 인자로 받아 반복 가능한 객체에 적용하는 고차 함수입니다. 반복문 없이도 데이터를 일괄 변환, 조건 추출, 누적 연산할 수 있어 코드가 매우 간결해집니다.
- map: 모든 요소에 함수 적용, 변환 결과 반환
- filter: 조건 함수가 True인 요소만 추출
- reduce: 모든 요소를 누적 연산해 단일 값 반환
한줄 요약: map=변환, filter=추출, reduce=누적!
📝map 함수: 일괄 변환
map 함수는 map(함수, iterable) 형태로 사용합니다. 각 요소에 함수를 적용해 새로운 iterable(map 객체)을 반환합니다.
예시:
numbers = [1, 2, 3, 4,[5] result = map(lambda x: x * 2, numbers) print(list(result)) # [2, 4, 6,[7][8]
여러 iterable을 동시에 처리할 수도 있습니다.
l1 = [1, 2,[3] l2 = [4, 5,[6] print(list(map(lambda x, y: x + y, l1, l2))) # [5,[9][10]
한줄 요약: map은 모든 요소를 일괄 변환!
⚡filter 함수: 조건 추출
filter 함수는 filter(함수, iterable) 형태로 사용합니다. 각 요소에 함수를 적용해 True를 반환하는 요소만 추출합니다.
예시:
numbers = [1, 2, 3, 4,[5][6] result = filter(lambda x: x % 2 == 0, numbers) print(list(result)) # [2][4][6]
함수 대신 None을 넣으면, False인 값(0, '', None 등)을 제외한 요소만 반환합니다.
한줄 요약: filter는 조건에 맞는 요소만 추출!
🎯reduce 함수: 누적 연산
reduce 함수는 reduce(함수, iterable[, initializer]) 형태로 사용합니다. iterable의 모든 요소를 누적 연산해 단 하나의 값으로 축약합니다.
예시(합계):
from functools import reduce numbers = [1,[2][3][4][5] result = reduce(lambda x, y: x + y, numbers) print(result) # 15
초기값을 지정하면 누적 연산의 시작값을 바꿀 수 있습니다.
result = reduce(lambda x, y: x + y, numbers, 10) print(result) # 25
한줄 요약: reduce는 누적 연산으로 단일 값 산출!
📊리스트 컴프리헨션과의 차이
구분 | map/filter/reduce | 리스트 컴프리헨션 |
---|---|---|
가독성 | 함수형, 짧고 명확 | 파이썬답고 직관적 |
표현력 | 복잡한 연산, 누적(축약)에 강함 | 단순 변환/필터링에 강함 |
결과 타입 | map/filter: iterator reduce: 단일 값 |
항상 리스트 |
한줄 요약: 컴프리헨션은 변환/필터, reduce는 누적에 강점!
💡실전 활용 꿀팁과 주의사항
- map, filter는 반환값이 iterator이므로 list()로 변환 필요
- reduce는 functools에서 import, 누적 연산에 최적
- 람다 함수와 조합하면 코드가 더욱 간결해짐
- 복잡한 로직은 함수로 분리, 간단한 연산은 람다로 처리
- 리스트 컴프리헨션으로 대체 가능한 경우도 많음
- map=일괄 변환, filter=조건 추출, reduce=누적 연산
- 반환값은 iterator(리스트 변환 필요), reduce는 단일 값
- 람다 함수와 함께 쓰면 코드가 짧고 명확해짐
한줄 요약: map, filter, reduce로 반복문 없이 데이터 처리 끝!
- map, filter, reduce는 함수형 프로그래밍의 핵심 도구
- 람다 함수와 조합해 반복문 없이 데이터 처리 가능
- 리스트 컴프리헨션과 차이, 반환 타입 꼭 기억!
도움이 되셨다면 공감♥ 눌러주세요!
파이썬 map, filter, reduce 함수, 이제 완벽하게 이해하셨나요? 다음 글에서는 고급 함수형 프로그래밍, 실전 데이터 파이프라인, 다양한 예제까지 더 깊이 있게 다룰 예정입니다. 궁금한 점이나 추가 질문은 댓글로 남겨주세요! 구독과 알림 설정도 잊지 마세요.
#파이썬map #filter #reduce #함수형프로그래밍 #람다 #컴프리헨션 #반복문 #데이터처리 #파이썬기초 #파이썬2025
'IT silo' 카테고리의 다른 글
파이썬 Pandas 데이터 분석 완전정복: 실전 활용법과 최신 트렌드 한눈에! (1) | 2025.07.01 |
---|---|
파이썬 NumPy 배열 연산 완전정복: 브로드캐스팅, 사칙연산, 행렬 곱까지! (1) | 2025.07.01 |
파이썬 람다 함수 활용 예제 완전정리: map, filter, 정렬까지 한눈에! (0) | 2025.06.30 |
파이썬 정규표현식 re 모듈 완전정복: 실전 활용과 꿀팁 총정리! (1) | 2025.06.30 |
파이썬 JSON 데이터 처리법 완전정리: 실전 예제와 꿀팁 총정리! (2) | 2025.06.30 |