[python] 파이썬에서 제공되는 map, filter, reduce 함수에 대해 알려주세요.

map 함수

map 함수는 리스트나 튜플 같은 반복 가능한 객체의 모든 요소에 대해 주어진 함수를 적용하여 새로운 리스트를 만들어 반환합니다. 기존의 요소들을 변환하거나 처리하는데 사용됩니다.

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)  # 출력: [1, 4, 9, 16, 25]

위 예제에서는 numbers 리스트의 각 요소에 대해 제곱 값을 계산하여 squared_numbers 리스트를 생성하였습니다. map 함수는 첫 번째 인자로 함수를, 두 번째 인자로 반복 가능한 객체를 받습니다.

filter 함수

filter 함수는 리스트나 튜플과 같은 반복 가능한 객체에서 주어진 함수의 반환값이 참인 요소들로 이루어진 새로운 객체를 반환합니다. 주로 조건을 걸어 원하는 요소들을 필터링하는데 사용됩니다.

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

위 예제에서는 numbers 리스트의 각 요소 중 짝수인 요소들만을 필터링하여 even_numbers 리스트에 저장하였습니다. filter 함수는 첫 번째 인자로 함수를, 두 번째 인자로 반복 가능한 객체를 받습니다.

reduce 함수

reduce 함수는 반복 가능한 객체의 요소들을 누적적으로 처리하여 하나의 결과값을 반환합니다. reduce 함수를 사용하기 위해서는 functools 모듈을 임포트해야 합니다.

from functools import reduce

numbers = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, numbers)
print(sum)  # 출력: 15

위 예제에서는 numbers 리스트의 요소들을 모두 더하여 결과값을 반환하였습니다. reduce 함수는 첫 번째 인자로 함수를, 두 번째 인자로 반복 가능한 객체를 받습니다. 이때, 첫 번째 인자로 전달되는 함수는 두 개의 인자를 받아 처리해야 합니다.

본 포스트에서는 map, filter, reduce 함수에 대해 알아보았습니다. 이러한 함수들은 파이썬에서 제공되는 유용한 기능들이며, 간단한 코드로 원하는 변환, 필터링, 누적 연산 등을 수행할 수 있습니다. 더 자세한 내용은 파이썬 공식 문서를 참고하시기 바랍니다.