목차
map()
알고리즘 공부를 하다보면 input 값에 자료형을 할당하여 줄때 두개 이상의 할당이 필요할때면 쓰는 것을 볼 수 있다.
또한 map 함수에 대한 출력 형식이나 입력 형식 등에 대한 이해도가 적어서 iterable 오류가 뜨기도 한다. 포스팅을 통하여 map 을 더 자유롭게 사용할 수 있도록 배워보자!
일단 vs code에서의 설명을 읽어보면 - map(func, *iterables)
map 함수의 class 는 map 이라고 나와있다. 그럼 map 이라는건 무엇일까?
map은 리스트의 객체형식이라고 보면 된다. 쉽게 말해 리스트는 저장 시에 [ ] 대괄호 (리스트) 내에 여러가지 객체들이 쭉 나열되어 있는데 그 형상에서 [ ] 만 제외되었다고 볼 수 있다.
입력 인자로는 앞에는 함수를 뒤에는 iterable 한 인자를 받는다고 되어있고
출력 인자로는 'Make an iterator' 반복되는 반복자를 출력 함을 알 수 있다.
예시를 통하여 설명을 계속하겠다
map() 의 입력 및 출력 자료형
map의 입력인자는?
map(함수/자료형, 리스트/튜플)
예시를 통해서 이해해보자
일반적인 반복문을 통한 리스트의 정수형으로의 변화
a = [1,23,45,153.31,2,31,2.1]
for i in range(len(a)):
a[i] = int(a[i])
print(a)
리스트의 i 번째 인자를 정수형으로 바꾼다음 다시 같은 자리에 할당하는 방식이다.
map을 이용한 리스트의 정수형으로의 변화
a = [1,23,45,153.31,2,31,2.1]
a = list(map(int, a))
print(a)
map 함수를 이용하여 리스트의 인자 만을 가지고 전부 자료형으로 바꿔준 다음에 list를 통하여 다시 리스트로 바꿔주었다.
만약 리스트로의 변환을 해주지 않는다면 어떨까?? 리스트의 객체라 했는데 출력이 되지 않을까?
파이썬 3 이후의 경우에는 iterable한 인자를 반복할때 iterator 자체를 출력해내기 때문에 원하는 값이 나오지 않는다. 원하는 값을 가지기 위해서는 map class 를 리스트나 튜플 형식으로 변환하여 출력해주어야한다.
혹은 map은 리스트의 객체이기 때문에 이 객체를 반복문의 조건 내에 넣어서 하나씩 출력을 하게 만들 수도 있다.
map() 의 사용 예제 보기