파이썬의 Map, Filter, Reduce 함수 이해하기
Python은 데이터 처리 작업을 간소화할 수 있는 여러 함수형 프로그래밍 도구를 제공합니다. 여기에는 map
, filter
, reduce
함수가 있습니다. 이러한 함수를 사용하면 간결하고 읽기 쉬운 방식으로 데이터 컬렉션에 대한 작업을 수행할 수 있습니다. 이 문서에서는 이러한 각 함수를 살펴보고 효과적으로 사용하는 방법을 이해하는 데 도움이 되는 예를 제공합니다.
map
함수
map
함수는 주어진 함수를 입력 목록(또는 반복 가능한 모든 항목)의 모든 항목에 적용하고 결과를 생성하는 반복자를 반환합니다. 이는 특히 컬렉션의 각 요소에 변환을 적용하는 데 유용합니다.
통사론
map(function, iterable)
예
목록에 있는 각 숫자를 제곱하고 싶다고 가정해 보겠습니다. map
를 사용하여 이를 달성할 수 있습니다.
# Define a function to square a number
def square(x):
return x * x
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Apply the function to each item in the list
squared_numbers = map(square, numbers)
# Convert the result to a list and print
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
filter
함수
filter
함수는 True
또는 False
를 반환하는 함수를 기반으로 반복 가능한 요소에서 요소를 필터링하는 데 사용됩니다. 함수가 True
를 반환하는 요소만 결과에 포함됩니다.
통사론
filter(function, iterable)
예
예를 들어, 목록에서 짝수만 유지하려면 filter
을 사용할 수 있습니다.
# Define a function to check if a number is even
def is_even(x):
return x % 2 == 0
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Filter the list using the function
even_numbers = filter(is_even, numbers)
# Convert the result to a list and print
print(list(even_numbers)) # Output: [2, 4]
reduce
함수
functools
모듈의 일부인 reduce
함수는 반복 가능한 항목에 왼쪽에서 오른쪽으로 누적적으로 이진 함수를 적용하여 반복 가능한 항목을 단일 값으로 줄입니다.
통사론
from functools import reduce
reduce(function, iterable[, initializer])
예
예를 들어, 목록에 있는 모든 숫자의 곱을 구하려면 reduce
을 사용할 수 있습니다.
from functools import reduce
# Define a function to multiply two numbers
def multiply(x, y):
return x * y
# List of numbers
numbers = [1, 2, 3, 4, 5]
# Reduce the list using the function
product = reduce(multiply, numbers)
# Print the result
print(product) # Output: 120
결론
map
, filter
, reduce
함수는 Python에서 함수형 프로그래밍을 위한 강력한 도구입니다. 이들은 변환을 적용하고, 데이터를 필터링하고, 컬렉션을 단일 값으로 축소하기 위한 우아한 솔루션을 제공합니다. 이러한 함수를 마스터하면 다양한 데이터 처리 작업을 위한 보다 간결하고 표현력 있는 코드를 작성할 수 있습니다.