강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

soh9909님의 프로필 이미지
soh9909

작성한 질문수

리스트 생성

해결된 질문

작성

·

286

0

answer = []
 t = map(int, input().split())
 answer.append(t) 
  1. 왜 이렇게 리스트 생성하면 입력하는 값이 answer에 뜨지 않고

[<map object at 0x0000014A5B6EA1A0>]

이런식으로 뜨는건가요?

빈리스트 만들어서 append해도 값이 들어가지 않습니다.

  1. 그리고 이렇게 리스트를 만들면

answer[-2] 

index 오류가 나는데 왜그런가요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요. 제가 답변해드릴게요.

말씀하신대로 input() 함수로 입력한 값들을 리스트에 저장하기 위해서는 map() 함수를 사용하셔야 합니다. 하지만 현재 코드에서는 map() 함수를 사용하여 입력값을 t에 저장하고, tanswer 리스트에 추가하고자 하지만 t 자체가 map 객체로 저장되는 문제가 있어요.

map() 함수는 iterable 객체에 함수를 적용하여 그 결과를 리턴하는 함수이기 때문에, map 객체 자체가 리스트가 아닌 iterable 객체를 가리키게 되는거에요.

따라서, map() 함수를 사용한 결과를 리스트로 변환해주어야 answer 리스트에 원하는 값이 들어갈 수 있습니다. 이를 위해서는 list() 함수를 사용하면 되요.

예를 들어, 다음과 같이 코드를 수정해보세요.

answer = []
t = list(map(int, input().split()))
answer.append(t)

이렇게 하면 입력한 값이 answer 리스트에 저장될 것입니다.

또한, index 오류가 발생하는 이유는 아직 answer 리스트에 어떤 값도 추가되지 않았을 때, answer[-2]와 같이 접근하기 때문에 발생하는 것이에요. 빈 리스트의 경우에는 인덱스로 접근할 수 없기 때문에 오류가 발생하는 거에요. index 오류를 방지하기 위해서는 answer 리스트에 값을 추가한 이후에 인덱스로 접근하도록 해주세요.

다른 궁금한 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!

soh9909님의 프로필 이미지
soh9909

작성한 질문수

질문하기