강의로 돌아가기
초보자

2강 실습 (2) 리스트에서 원소 찾아내가 질문입니다.

def solution(L, x):
answer=[]
n=L.count(x)
for i in range (0, n-1):
n2=L.index(x)
answer[i]=n2
L=L[n2+1:]
return answer

answer배열에 값이 들어가지 않는데 왜 이런 결과가 나오는건가요?

1 개의 답변
이시윤

Python 리스트의 활용에 관련한 프로그래밍 기초를 먼저 배우셔야 할 것 같습니다. 이 강의에서는 Python 프로그래밍을 익히는 것이 목적이 아니고 몇 가지의 기초적인 자료 구조와 그들을 이용한 알고리즘을 익히는 것이 목적인데, 여기에 프로그래밍 실습을 위한 언어로서 Python 을 택했습니다. 이 이후의 강의에서는 기본적인 Python 프로그래밍 기법을 이미 알고 있음을 가정하고 내용이 진행됩니다.

이 코드가 실행하면 아마도 런타임 에러가 발생할 것입니다. 그 이유는, 두 번째 행에서 answer = [] 로 하여 빈 리스트를 초기화하여 answer 라는 변수에 담았는데, 그 이후 여섯 번째 행에서 answer[i] = n2 라는 문장을 만났을 때 변수 i 의 값이 어떤 것이든 (그 위의 for 문에 의하여 0 부터 n - 2 까지의 범위 내에 있는 정수 값 중 하나가 담기게 되는데) 리스트 내의 유효하지 않은 인덱스 범위를 참조하게 되어 IndexError 입니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.