본문 바로가기
파이썬 교육

[파이썬 독학] 파이썬의 람다 함수, map, filter, reduce 이해하기

by CodeCrossover 2023. 8. 21.
반응형

"파이썬의 람다 함수와 map, filter, reduce 함수를 깊게 이해하고 싶다면 이 글을 확인하세요. 각 함수의 기본 구조와 사용 예시, 그리고 주석을 통한 상세 설명을 제공합니다."

 

파이썬은 간결하면서도 표현력 있는 언어로 알려져 있습니다. 이러한 특성 중 하나는 함수형 프로그래밍 요소를 포함하고 있는데, 그중에서도 람다 함수, `map`, `filter`, `reduce`는 파이썬 프로그래밍에서 자주 사용되는 기능입니다.

 

람다 함수는 이름이 없는 함수로, 간단한 연산을 위해 주로 사용됩니다. 한편, `map`, `filter`, `reduce`는 각각 리스트나 다른 반복 가능한 객체의 요소에 함수를 적용하는 역할을 합니다.

 

이 글에서는 각 함수의 기본 구조와 사용 방법, 그리고 실제 코드 예시를 통해 이러한 함수들의 활용법을 상세하게 알아보겠습니다. 특히, 각 예시 코드에는 주석을 추가하여 함수의 작동 원리를 더욱 명확하게 이해할 수 있도록 하였습니다.


1. 람다 함수 (Lambda Function)

람다 함수는 이름 없는 함수로, 간단한 연산을 수행할 때 주로 사용됩니다. 기본 구조는 다음과 같습니다.

lambda arguments: expression

 

예시

# x를 인자로 받아 x + 10을 반환하는 람다 함수
f = lambda x: x + 10
print(f(5))  # 출력: 15

 

2. map 함수

`map` 함수는 주어진 함수를 각각의 요소에 적용하여 결과를 반환합니다. 기본 구조는 다음과 같습니다.

map(function, iterable)

 

예시

numbers = [1, 2, 3, 4]
# numbers의 각 요소에 제곱을 수행하는 람다 함수를 적용
squared = list(map(lambda x: x**2, numbers))
print(squared)  # 출력: [1, 4, 9, 16]

 

3. filter 함수

`filter` 함수는 주어진 함수의 조건을 만족하는 요소만을 반환합니다. 기본 구조는 다음과 같습니다.

filter(function, iterable)

 

예시

numbers = [1, 2, 3, 4, 5]
# numbers의 각 요소 중 짝수만을 반환하는 람다 함수를 적용
even = list(filter(lambda x: x % 2 == 0, numbers))
print(even)  # 출력: [2, 4]

 

4. reduce 함수

`reduce` 함수는 주어진 함수를 순차적으로 요소에 적용하여 단일 결과를 반환합니다. `functools` 모듈에 포함되어 있습니다.

from functools import reduce

reduce(function, iterable)

 

예시

numbers = [1, 2, 3, 4]
# numbers의 모든 요소를 순차적으로 곱하는 람다 함수를 적용
product = reduce(lambda x, y: x * y, numbers)
print(product)  # 출력: 24

이렇게 파이썬의 람다 함수와 `map`, `filter`, `reduce` 함수는 코드를 간결하게 작성할 수 있게 도와줍니다. 각 함수는 특정 작업을 수행하기 위해 설계되었으며, 이를 적절히 조합하면 복잡한 데이터 처리 작업도 간결하게 해결할 수 있습니다.

반응형