본문 바로가기
IT/Python Basic

[Python] 초급 개념17 - lambda 함수와 map(), filter(), reduce()

by Echinacea 2025. 2. 19.
반응형

파이썬에서는 **익명 함수(lambda 함수)**를 사용하여 간결한 코드 작성을 할 수 있습니다. 또한, map(), filter(), reduce() 함수를 활용하면 데이터를 효과적으로 처리할 수 있습니다.

이러한 기능은 데이터 변환, 필터링 및 누적 연산 등에 자주 활용됩니다.


 

 

🔹 1. lambda 함수란?

lambda 함수는 한 줄로 작성하는 익명 함수입니다. def 키워드를 사용하지 않고, 간단한 연산을 수행하는 경우 유용합니다.

 

✅ 예제 1: lambda 기본 사용

add = lambda x, y: x + y
print(add(3, 5))

출력 예시:

8

 

📌 설명:

  • lambda x, y: x + y는 두 개의 인자를 받아 더한 값을 반환합니다.
  • add(3, 5)를 호출하면 8이 출력됩니다.

 

 

🔹 2. map() 함수 - 리스트 변환

map() 함수는 리스트의 각 요소를 변환하는 함수입니다.

 

✅ 예제 2: 리스트의 각 요소 제곱

numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared)

출력 예시:

[1, 4, 9, 16]

 

📌 설명:

  • lambda x: x**2를 사용하여 리스트의 각 요소를 제곱합니다.
  • map()을 사용하면 반복문 없이 리스트를 변환할 수 있습니다.

 

 

🔹 3. filter() 함수 - 조건에 맞는 값 선택

filter() 함수는 특정 조건을 만족하는 요소만 걸러낼 때 사용됩니다.

 

✅ 예제 3: 리스트에서 짝수만 필터링

numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)

출력 예시:

[2, 4, 6]

 

📌 설명:

  • lambda x: x % 2 == 0은 짝수만 선택하는 조건입니다.
  • filter()를 사용하면 리스트에서 특정 조건을 만족하는 값만 추출할 수 있습니다.

 

 

🔹 4. reduce() 함수 - 누적 연산

reduce() 함수는 리스트의 요소를 하나씩 누적하여 연산을 수행합니다. functools 모듈에서 제공됩니다.

 

✅ 예제 4: 리스트 요소의 합 계산

from functools import reduce

numbers = [1, 2, 3, 4, 5]
sum_numbers = reduce(lambda x, y: x + y, numbers)
print(sum_numbers)

출력 예시:

15

 

📌 설명:

  • reduce(lambda x, y: x + y, numbers)는 리스트의 요소를 하나씩 더해 나갑니다.
  • 1 + 2 + 3 + 4 + 5 = 15가 됩니다.

 

 

🔹 5. map(), filter(), reduce() 함께 활용하기

이 함수들을 조합하여 데이터 변환과 필터링을 동시에 수행할 수 있습니다.

 

✅ 예제 5: 짝수를 제곱한 후 합산하기

numbers = [1, 2, 3, 4, 5, 6]

# 1. 짝수만 필터링
filtered = filter(lambda x: x % 2 == 0, numbers)

# 2. 제곱 변환
squared = map(lambda x: x**2, filtered)

# 3. 합산
result = reduce(lambda x, y: x + y, squared)
print(result)

출력 예시:

56

 

📌 설명:

  • filter()를 사용하여 짝수를 선택합니다: [2, 4, 6]
  • map()을 사용하여 각 요소를 제곱합니다: [4, 16, 36]
  • reduce()를 사용하여 합을 구합니다: 4 + 16 + 36 = 56

 

 

🔹 6. 마무리

이번 문서에서는 lambda 함수, map(), filter(), reduce()의 활용법을 학습했습니다.

 

핵심 요약

  • lambda 함수: 익명 함수로 간결한 코드 작성 가능
  • map(): 리스트의 각 요소를 변환하는 함수
  • filter(): 리스트에서 특정 조건을 만족하는 요소만 선택
  • reduce(): 리스트의 요소를 누적하여 연산 수행
  • 이 함수들을 조합하면 복잡한 데이터 변환을 간결하게 처리할 수 있음

 

반응형

댓글