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]

여기서 람다 함수는 두 개의 인수 xy를 취합니다. 이는 각각 numbers1numbers2의 요소에 해당하고 해당 합계를 반환합니다.

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()을 마스터하면 다양한 프로그래밍 시나리오에서 도움이 됩니다.