본문 바로가기
IT silo

파이썬 map, filter, reduce 함수 완전정리: 실전 예제와 활용 꿀팁!

by 테크사일로 2025. 6. 30.

파이썬 map, filter, reduce 함수 완전정리: 실전 예제와 활용 꿀팁!

파이썬 map, filter, reduce 함수
파이썬 map, filter, reduce 함수

 

파이썬 map, filter, reduce 함수, 언제 어떻게 써야 할지 헷갈리셨나요? 이 글 하나로 map, filter, reduce의 기본 개념부터 실전 예제, 람다 함수와의 조합, 리스트 컴프리헨션과의 차이, 실무 활용 팁까지 완벽하게 정리해드립니다. 이 세 함수는 데이터 변환, 필터링, 누적 연산 등 반복문보다 간결하고 효율적인 코드를 작성할 수 있게 해주는 파이썬 함수형 프로그래밍의 핵심 도구입니다.

많은 분들이 "map과 filter의 차이는?", "reduce는 언제 쓰는 게 좋을까?", "리스트 컴프리헨션과 비교하면?" 등 다양한 고민을 하시죠. 이 글에서 모든 궁금증을 해결하세요!

📋 목차

🔍map, filter, reduce란?

이 함수들은 함수를 인자로 받아 반복 가능한 객체에 적용하는 고차 함수입니다. 반복문 없이도 데이터를 일괄 변환, 조건 추출, 누적 연산할 수 있어 코드가 매우 간결해집니다.

  1. map: 모든 요소에 함수 적용, 변환 결과 반환
  2. filter: 조건 함수가 True인 요소만 추출
  3. 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

반응형