map 을 사용해 여러 개의 값을 입력받아 바로 리스트에 저장하는 코드를 작성했다.
코드는 다음과 같았다.
fish_price = map(int, input("가격: 2000 2500 3000").split())
하지만 이것을 사용해서 fish_price의 원소에 [] 인덱스로 접근했을 때
fish_price = map(int, input("가격: 2000 2500 3000").split())
print(fish_price[1])
위 코드를 실행하면 아래와 같은 에러가 발생한다.
fish_price의 타입을 체크해보면 다음과 같다.
fish_price의 타입은 바로 map 이다.
map은 iterable을 반환합니다. 간단히 말하면 한 번에 하나씩 원소를 차례대로 내뱉은 존재이기 때문에 중괄호([])와 인덱스를 사용해 fish_price의 원소에 접근할 수 없습니다.
중괄호([])와 인덱스를 사용해 fish_price의 원소에 접근하기 위해서는 fish_price를 list로 형변환해주면 됩니다.
fish_price = list(map(int, input("가격: 2000 2500 3000").split()))
print(fish_price[1])
'프로그래밍 언어 > Python' 카테고리의 다른 글
얕은 복사와 깊은 복사 (1) | 2024.01.04 |
---|---|
값 비교 시 is 연산자를 쓰면 안되는 이유 (0) | 2023.12.29 |