Python Intermediate and Advanced

Python Intermediate_002: Map Function (파이썬 고급 - Map 함수)

codeaddict 2024. 12. 22. 19:23

map() 함수란?

Python에서 map() 함수는 주어진 함수를 반복 가능한 객체(예: 리스트, 튜플 등)의 모든 항목에 적용하는 데 사용됩니다. 이 함수는 맵 객체(iterator)를 반환하며, 이를 리스트, 튜플 또는 다른 반복 가능한 객체로 변환할 수 있습니다.

map() 함수의 강력한 점은 반복 가능한 객체의 여러 항목에 동일한 작업을 적용할 때 명시적인 반복문을 작성할 필요 없이 간단하게 작업을 처리할 수 있다는 것입니다.

map() 함수의 문법

map(function, iterable, ...)​


  • function: 반복 가능한 객체의 각 항목에 적용할 함수.
  • iterable: 함수가 처리할 하나 이상의 반복 가능한 객체(리스트, 튜플 등).
  • 여러 개의 반복 가능한 객체가 전달되면 함수는 반복 가능한 객체만큼의 인자를 가져야 합니다.

예제 1: 간단한 예제

먼저, 숫자들을 두 배로 만드는 간단한 예제를 살펴보겠습니다.

# Define a simple function that doubles a number
def double(x):
    return x * 2

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Use map to apply 'double' to each item in the list
doubled_numbers = map(double, numbers)

# Convert the result to a list and print it
print(list(doubled_numbers))

# Output: [2, 4, 6, 8, 10]

 

 

설명:

  • double(x) 함수는 입력값을 두 배로 만듭니다.
  • map() 함수는 numbers 리스트의 각 항목에 double() 함수를 적용합니다.
  • 결과는 맵 객체로 반환되며, 이를 리스트로 변환하여 출력하면 [2, 4, 6, 8, 10]이 됩니다.

예제 2: 중급 예제 (Lambda 사용)

이번에는 lambda 함수를 사용하여 같은 결과를 얻는 방법을 살펴보겠습니다. 이렇게 하면 코드가 더 짧고 간결해집니다.

 
# List of numbers
numbers = [1, 2, 3, 4, 5]

# Use map with a lambda function to double the numbers
doubled_numbers = map(lambda x: x * 2, numbers)

# Convert the result to a list and print it
print(list(doubled_numbers))
# # Output: [2, 4, 6, 8, 10]
  • 별도의 함수를 정의하는 대신 map() 내에서 직접 lambda x: x * 2를 사용합니다.
  • 이 방식은 코드를 더 간결하게 만들어주며, 동일한 결과를 얻을 수 있습니다.

예제 3: 고급 예제 (여러 개의 반복 가능한 객체 사용)

이번 예제에서는 두 개의 리스트를 사용하여 각 리스트의 항목을 더하는 함수를 적용해 보겠습니다.

# Function to add corresponding elements from two lists
def add(x, y):
    return x + y

# Two lists of numbers
numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]

# Use map to add corresponding elements of numbers1 and numbers2
sum_numbers = map(add, numbers1, numbers2)

# Convert the result to a list and print it
print(list(sum_numbers))

# Output: [5, 7, 9]

 

설명:

  • add(x, y) 함수는 두 숫자를 더합니다.
  • map() 함수는 numbers1과 numbers2 리스트를 받아 각 리스트의 항목을 더하는 add() 함수를 적용합니다.
  • 결과는 [5, 7, 9]로 출력됩니다.