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]
'Programming > Python' 카테고리의 다른 글
filter() 리스트, 튜플 등에서 조건에 맞는 요소만 추려내는 내장함수 (0) | 2021.05.04 |
---|---|
.get() 딕셔너리에서 key를 사용해 value 얻기 (0) | 2021.05.04 |
set() - from list to set 리스트를 해시형 데이터 타입인 셋으로 변환하기 (0) | 2021.04.26 |
[AI class day 5] 프로그래머스 코딩 테스트 문제 풀기 TIL (0) | 2021.04.24 |
[AI class day 4] 파이썬 코딩테스트 문제 풀이 TIL (0) | 2021.04.23 |