1 minute read

파이썬 map() 함수 완벽 가이드: 데이터 변환의 핵심, 초보자도 쉽게 이해하는 방법

파이썬 map() 함수는 시퀀스의 각 요소에 함수를 적용하고 결과를 반환하는 내장 함수입니다. map() 함수는 데이터를 효율적으로 변환하고 처리하는 데 유용하며, 코드의 가독성을 높이는 데 도움을 줍니다. 이 글에서는 파이썬 map() 함수의 기본 개념, 사용법, 다양한 활용법을 예제 코드와 함께 자세히 설명합니다.

1. map() 함수란 무엇인가?

map() 함수는 다음과 같은 기능을 수행합니다.

  • 시퀀스(리스트, 튜플 등)의 각 요소에 지정된 함수를 적용합니다.
  • 함수 적용 결과를 이터레이터(iterator)로 반환합니다.
  • 이터레이터는 필요에 따라 리스트, 튜플 등으로 변환할 수 있습니다.

2. map() 함수 문법

map() 함수의 기본 문법은 다음과 같습니다.

map(function, iterable, ...)
  • function: 각 요소에 적용할 함수입니다.
  • iterable: 함수를 적용할 시퀀스입니다. 여러 개의 시퀀스를 사용할 수 있습니다.

3. map() 함수 사용 예시

3.1. 리스트의 각 요소에 제곱 연산 적용

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

3.2. 두 개의 리스트 요소 합산

list1 = [1, 2, 3]
list2 = [4, 5, 6]
summed_list = list(map(lambda x, y: x + y, list1, list2))
print(summed_list)  # 출력: [5, 7, 9]

3.3. 문자열 리스트를 정수 리스트로 변환

str_numbers = ["1", "2", "3", "4", "5"]
int_numbers = list(map(int, str_numbers))
print(int_numbers)  # 출력: [1, 2, 3, 4, 5]

4. map() 함수 활용

4.1. 사용자 정의 함수와 함께 사용

def multiply_by_two(x):
    return x * 2

numbers = [1, 2, 3, 4, 5]
multiplied_numbers = list(map(multiply_by_two, numbers))
print(multiplied_numbers)  # 출력: [2, 4, 6, 8, 10]

4.2. 조건문과 함께 사용

numbers = [1, 2, 3, 4, 5]
result = list(map(lambda x: "짝수" if x % 2 == 0 else "홀수", numbers))
print(result)  # 출력: ['홀수', '짝수', '홀수', '짝수', '홀수']

4.3. 복잡한 데이터 구조 변환

data = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}, {"name": "Charlie", "age": 35}]
names = list(map(lambda x: x["name"], data))
print(names)  # 출력: ['Alice', 'Bob', 'Charlie']

5. map() 함수와 리스트 컴프리헨션 비교

map() 함수와 리스트 컴프리헨션은 모두 시퀀스의 각 요소에 연산을 적용하는 데 사용됩니다. 하지만 다음과 같은 차이점이 있습니다.

  • map() 함수는 이터레이터를 반환하고, 리스트 컴프리헨션은 리스트를 반환합니다.
  • map() 함수는 함수를 인자로 전달하고, 리스트 컴프리헨션은 표현식을 사용합니다.
  • map() 함수는 여러 개의 시퀀스를 처리할 수 있지만, 리스트 컴프리헨션은 하나의 시퀀스만 처리할 수 있습니다.

6. 결론

파이썬 map() 함수는 데이터를 효율적으로 변환하고 처리하는 데 유용한 도구입니다. 람다 함수, 사용자 정의 함수, 조건문 등 다양한 기능을 활용하여 더욱 강력하고 유연한 파이썬 코드를 작성할 수 있습니다.

Top