Programming/Python
map() - 리스트, 튜플 등에서의 각 요소를 지정된 함수로 처리해주는 내장함수
makeitworth
2021. 4. 26. 23:37
map(조건함수, 순회 가능한 데이터)
입력: 순회가능한 데이터 (리스트, 튜플), 조건함수 (파이썬 내장함수, 사용자 정의함수)
출력: map객체
리스트의 요소들인 숫자들을 문자열로 바꾼 새로운 리스트를 만들고 싶으면 어떻게 해야할까?
for 문을 이용해 아이템 하나씩 바꿀 수도 있지만 너무 번거롭다.
lst = [3, 6, 8, 2, 3]
str_lst = []
for i in range(len(lst)):
str_lst.append(str(lst[i]))
str_lst
>> ['3', '6', '8', '2', '3']
map() 을 쓰면 지정된 함수를 리스트 각 요소에 한꺼번에 적용해준다.
lst = [3, 6, 8, 2, 3]
str_lst = list(map(str, lst))
str_lst
>> ['3', '6', '8', '2', '3']
map()함수를 list()로 감싸주는 이유는 원래 map()의 출력값은 map 객체이기 때문이다.
lst = [3, 6, 8, 2, 3]
lst = map(str, lst)
lst
>> <map at 0x104317700>
map()함수로 바꿔줄 수 있는 것은 list만 있는 것은 아니고 iterable한 자료 타입이면 가능하다(ex> tuple, set...)
int_set = {1,2,3,4,5}
str_set = set(map(str, int_set))
str_set
>> {'1', '2', '3', '4', '5'}
파이썬 내장함수 말고, 사용자 정의 함수도 map()으로 한번에 적용 가능하다
lst = [3, 6, 8, 2, 3]
def minus(n):
return -n
min_lst = list(map(minus, lst))
min_lst
>> [-3, -6, -8, -2, -3]