🖥️ IT, 컴퓨터/🐍 Python

[Python] map 함수 :: 주어진 함수를 입력 이터러블의 모든 요소에 적용하여 새로운 이터러블로 반환

김 홍시 2024. 6. 12. 13:18
반응형

map (A , B) : A를 B에 적용 

 

 

map 함수는 Python의 내장 함수로, 주어진 함수를 입력 이터러블의 모든 요소에 적용하여 그 결과를 새로운 이터러블로 반환하는 함수입니다. map 함수는 주로 리스트, 튜플 등과 같은 이터러블 자료형의 요소를 변환하는 데 사용됩니다.

기본 형식

map(function, iterable, ...)
  • function: 각 이터러블의 요소에 적용할 함수입니다.
  • iterable: 변환할 이터러블(반복 가능한 객체)입니다. 두 개 이상의 이터러블을 받을 수도 있습니다.

특징

  • map 함수는 맵 객체(map object)를 반환합니다. 이는 이터레이터(iterator)이며, 이를 리스트나 다른 이터러블 타입으로 변환하여 사용합니다.
  • 여러 개의 이터러블을 인자로 받을 수 있으며, 이 경우 함수는 각 이터러블의 동일한 인덱스 요소들을 인자로 받아야 합니다.

예제

다음은 map 함수의 사용 예제입니다.

기본 사용법

리스트의 각 요소를 제곱하는 함수에 적용하는 예제입니다.

# 각 요소를 제곱하는 함수
def square(x):
    return x ** 2

numbers = [1, 2, 3, 4, 5]

# map 함수를 사용하여 리스트의 각 요소에 제곱 함수 적용
squared_numbers = map(square, numbers)

# map 객체를 리스트로 변환하여 결과 확인
print(list(squared_numbers))

출력:

[1, 4, 9, 16, 25]

람다 함수 사용

람다 함수를 사용하여 더 간단하게 작성할 수 있습니다.

numbers = [1, 2, 3, 4, 5]

# 람다 함수를 사용하여 리스트의 각 요소를 제곱
squared_numbers = map(lambda x: x ** 2, numbers)

print(list(squared_numbers))

여러 개의 이터러블 사용

두 개의 리스트 요소를 더하는 예제입니다.

numbers1 = [1, 2, 3]
numbers2 = [4, 5, 6]

# 두 개의 리스트 요소를 더하는 함수 적용
summed_numbers = map(lambda x, y: x + y, numbers1, numbers2)

print(list(summed_numbers))

출력:

[5, 7, 9]

문자열 변환

문자열 리스트의 각 요소를 대문자로 변환하는 예제입니다.

strings = ['apple', 'banana', 'cherry']

# 문자열 리스트의 각 요소를 대문자로 변환
uppercased_strings = map(str.upper, strings)

print(list(uppercased_strings))

출력:

['APPLE', 'BANANA', 'CHERRY']

주의사항

  • map 함수는 지연 평가(lazy evaluation)를 수행하므로, 결과를 확인하거나 사용하려면 listfor 루프 등을 사용하여 요소를 실제로 평가해야 합니다.
  • 입력 이터러블의 크기가 다르면 가장 짧은 이터러블에 맞추어 연산이 수행됩니다.

요약

  • map 함수는 주어진 함수를 이터러블의 모든 요소에 적용하여 그 결과를 반환하는 함수입니다.
  • 람다 함수를 사용하면 더 간단하게 작성할 수 있습니다.
  • 여러 개의 이터러블을 입력으로 받아 각 이터러블의 동일한 인덱스 요소에 대해 함수를 적용할 수 있습니다.
반응형