🖥️ 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)를 수행하므로, 결과를 확인하거나 사용하려면list
나for
루프 등을 사용하여 요소를 실제로 평가해야 합니다.- 입력 이터러블의 크기가 다르면 가장 짧은 이터러블에 맞추어 연산이 수행됩니다.
요약
map
함수는 주어진 함수를 이터러블의 모든 요소에 적용하여 그 결과를 반환하는 함수입니다.- 람다 함수를 사용하면 더 간단하게 작성할 수 있습니다.
- 여러 개의 이터러블을 입력으로 받아 각 이터러블의 동일한 인덱스 요소에 대해 함수를 적용할 수 있습니다.
반응형