본문 바로가기
언어/python3

파이썬 | map 함수를 쓰고, []로 접근하고 싶을 때

by Godgil 2020. 3. 15.

내가 예전 글에서  map을 사용해서 여러개를 입력받아, 바로 리스트에 저장하는 코드를 쓴 적이 있다.

 

[코딩/python3] - 파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자.

 

파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자.

역시 백준 알고리즘을 풀던 중, 여러 개의 숫자를 띄어쓰기 기준으로 한번에 입력받아서 저장 할 방법이 필요했다. 군대가기 전 배운걸 생각해 봤을때, 여러 개의 숫자를 저장할 자료형은 list를 쓰면 될것 같았다..

god-gil.tistory.com

 

코드는 아래와 같다.

lst = map(int, input().split())

 하지만 이것을 사용해서 lst의 원소에 [] index로 접근하려면

lst = map(int, input().split())
print(lst[1])
TypeError: 'map' object is not subscriptable

위와 같은 코드가 나오면서 에러가 난다.

대충 보니까, map을 사용하면 [0]같은 연산자로는 접근 할 수가 없다고 한다. 

물론 [0:1]같은 슬라이싱도 되지 않는다.

 

lst = list()
lst = map(int, input().split())
print(type(lst))

1 2 3 4 5
<class 'map'>

 타입을 체크해보면 저렇게 map class로 나온다.

역시 다들 알고 있겠지만, []를 사용해서 인덱스로 접근하려면 답은 간단하다.

[]이 사용 가능한 list같은 자료형으로 캐스팅해주면된다.

 

lst = map(int, input().split())
lst = list(lst)
print(lst[1])

1 2 3 4
2

 

하나하나 천천히 알아가는 과정이 중요한것 같다.

댓글