내가 예전 글에서 map을 사용해서 여러개를 입력받아, 바로 리스트에 저장하는 코드를 쓴 적이 있다.
[코딩/python3] - 파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자.
파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자.
역시 백준 알고리즘을 풀던 중, 여러 개의 숫자를 띄어쓰기 기준으로 한번에 입력받아서 저장 할 방법이 필요했다. 군대가기 전 배운걸 생각해 봤을때, 여러 개의 숫자를 저장할 자료형은 list를 쓰면 될것 같았다..
god-gil.tistory.com
코드는 아래와 같다.
1 | lst = map ( int , input ().split()) |
하지만 이것을 사용해서 lst의 원소에 [] index로 접근하려면
1 2 3 | lst = map ( int , input ().split()) print (lst[ 1 ]) TypeError: 'map' object is not subscriptable |
위와 같은 코드가 나오면서 에러가 난다.
대충 보니까, map을 사용하면 [0]같은 연산자로는 접근 할 수가 없다고 한다.
물론 [0:1]같은 슬라이싱도 되지 않는다.
1 2 3 4 5 6 | lst = list () lst = map ( int , input ().split()) print ( type (lst)) 1 2 3 4 5 < class 'map' > |
타입을 체크해보면 저렇게 map class로 나온다.
역시 다들 알고 있겠지만, []를 사용해서 인덱스로 접근하려면 답은 간단하다.
[]이 사용 가능한 list같은 자료형으로 캐스팅해주면된다.
1 2 3 4 5 6 | lst = map ( int , input ().split()) lst = list (lst) print (lst[ 1 ]) 1 2 3 4 2 |
하나하나 천천히 알아가는 과정이 중요한것 같다.
'언어 > python3' 카테고리의 다른 글
파이썬 | 리스트를 리스트에 복사할 때, 주의할 점 (0) | 2020.03.15 |
---|---|
파이썬 | 리스트 생성, 생성과 동시에 크기지정 (0) | 2020.03.15 |
파이썬 | for문과 print문 사용 시, 줄바꿈을 안하고 싶을때 (0) | 2020.03.15 |
파이썬 | 입력을 받고 바로 리스트에 집어넣어 보자. (0) | 2020.03.15 |
파이썬 | 입력을 더 빠르게 받아보자. (0) | 2020.03.15 |
댓글