Language/Python
map object
개발사전
2021. 9. 2. 21:29
map
이터러블한 객체의 모든 요소에 함수를 반영하는 파이썬 내장 함수입니다. 아래의 예시처럼 'str' 함수를 이터러블한 객체인 리스트의 모든 요소에 반영하여 int형이었던 요소들을 str형으로 일괄 변경되었습니다.
num_list = list(map(str, [1,2,3,4,5,6]))
print(num_list) # ['1', '2', '3', '4', '5', '6']
map object
map 함수를 리스트로 묶지않으면 이터레이터인 map object를 반환합니다. 이터레이터의 특징인 한번 사용한 뒤 재사용하려면 다시 정의를 해주어야 합니다. 아래의 예시를 보면, num_list의 최댓값을 구한 뒤, 최솟값을 구하려고 하면 시퀸스가 비어있다고 합니다.
num_list = map(int, ['1','2','3','4','5','6'])
print(num_list) # <map object at 0x7f439f3ec9a0>
print(max(num_list)) # 6
print(min(num_list)) # ValueError: min() arg is an empty sequence
리스트 컴프리핸션
하나의 map object 여러 번 사용하려면 리스트로 변환하여 사용하여야 합니다. map object를 리스트로 한번 묶는 것보단 리스트 컴프리핸션을 이용하는 것이 훨씬 직관적이고 효율적입니다.
num_list = [str(i) for i in [1,2,3,4,5,6])]
print(num_list) # ['1', '2', '3', '4', '5', '6']