Python 내장 map() 함수 소개
map()
함수는 Python의 강력하고 다재다능한 내장 함수로, 반복 가능한 항목(예: 목록 또는 튜플)의 모든 항목에 함수를 적용하고 반복자(iterator)인 맵 객체를 반환할 수 있습니다. 이 함수는 깔끔하고 효율적이며 Pythonic한 코드를 작성하려는 모든 Python 프로그래머에게 필수적입니다.
map()
함수는 무엇인가요?
Python의 map()
함수는 두 가지 기본 인수를 취합니다. 함수와 반복 가능한 인수입니다. 함수를 반복 가능한 인수의 모든 항목에 적용하고 결과를 포함하는 반복자(map
객체)를 반환합니다.
map()
의 구문은 다음과 같습니다.
map(function, iterable, ...)
여기서 function
은 반복 가능한 객체의 각 요소에 적용할 함수이고, iterable
은 리스트, 튜플 또는 문자열과 같은 모든 Python 반복 가능 객체가 될 수 있습니다. 또한 여러 반복 가능 객체를 제공할 수 있으며, 함수는 반복 가능 객체의 수만큼 인수를 허용해야 합니다.
map()의 기본 사용법
map()
을 사용하여 목록에 있는 각 숫자를 제곱하는 간단한 예를 살펴보겠습니다.
def square(x):
return x * x
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(square, numbers)
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
이 예에서 square()
함수는 numbers
리스트의 각 요소에 적용되고, 결과는 새로운 반복자로 반환됩니다. list()
를 사용하여 반복자를 쉽게 볼 수 있도록 리스트로 변환합니다.
Lambda 함수와 함께 map()
사용
별도의 함수를 정의하는 대신 람다 함수를 사용하여 코드를 더 간결하게 만들 수 있습니다. 람다 함수는 lambda
키워드로 정의된 작고 익명의 함수입니다. map()
에서 람다 함수를 사용하는 방법은 다음과 같습니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)
print(list(squared_numbers)) # Output: [1, 4, 9, 16, 25]
이 경우에는 map()
호출 내부에 함수를 직접 정의하여 코드를 더 짧고 읽기 쉽게 만듭니다.
여러 반복 가능 항목 매핑
map()
함수는 또한 두 개 이상의 반복 가능한 항목을 취할 수 있습니다. 이러한 경우 제공된 함수는 반복 가능한 항목의 수만큼 인수를 가져야 합니다. 그런 다음 map()
함수는 각 반복 가능한 항목의 해당 요소를 사용하여 함수를 적용합니다.
예를 들어, 두 목록에서 해당 요소를 추가해 보겠습니다.
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]
summed_numbers = map(lambda x, y: x + y, numbers1, numbers2)
print(list(summed_numbers)) # Output: [5, 7, 9]
여기서 람다 함수는 두 개의 인수 x
와 y
를 취합니다. 이는 각각 numbers1
과 numbers2
의 요소에 해당하고 해당 합계를 반환합니다.
map
객체를 다른 데이터 유형으로 변환
map()
함수는 반복자를 반환합니다. 반복자는 반복할 수 있는 객체이지만 목록 자체는 아닙니다. 결과를 다른 컨텍스트에서 사용하려면 목록, 튜플 또는 집합과 같은 다른 데이터 유형으로 변환해야 할 수 있습니다.
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x * x, numbers)
print(list(squared_numbers)) # Convert to list: [1, 4, 9, 16, 25]
print(tuple(squared_numbers)) # Convert to tuple: ()
print(set(squared_numbers)) # Convert to set: set()
반복자가 고갈되면(예: 리스트로 변환) 재사용할 수 없습니다. 따라서 후속 변환은 빈 컬렉션을 반환합니다.
map()의 실용적 응용 프로그램
map()
함수는 특히 데이터 처리 및 함수형 프로그래밍 패러다임에서 유용합니다. 다음은 몇 가지 일반적인 응용 프로그램입니다.
- 목록이나 배열의 각 요소에 함수를 적용합니다(예: 데이터 정규화).
- 데이터 유형 변환(예: 문자열 목록을 정수 목록으로 변환)
- 여러 반복 가능한 항목을 병렬 방식으로 결합합니다(예: 두 목록의 요소별 연산).
- 데이터 정리 또는 변환(예: 공백 제거 또는 변환 적용).
결론
map()
함수는 Python에서 함수를 반복 가능한 객체에 적용하는 것을 간소화하는 다재다능하고 강력한 도구입니다. map()
을 효과적으로 사용하는 방법을 이해하면 더 깔끔하고, 더 효율적이며, 더 Python적인 코드를 작성할 수 있습니다. 초보자이든 숙련된 개발자이든 map()
을 마스터하면 다양한 프로그래밍 시나리오에서 도움이 됩니다.