편집 : '안녕하세요' '목록'IndexError 인덱스 변수는 범위에 있어야한다하더라도
에 업데이트 내가 초보자이고 내가 라틴어 돼지로 영어 문장을 번역하는 프로젝트에 노력하고있다,하지만 난이 문장에서 구두점 앞에 공백을 제거하는 동안 문제가 발생합니다. 다음은 내가 문제가되는 스크립트입니다. 내가 그것을 실행하면
import string
list = ['H', 'i', 's', 't', 'a', 'y', ' ', 's', 'i', 'a', 'y', ' ', 'a', 'a', 'y', ' ', 'e', 's', 't', 't', 'a', 'y', ' ', '.', ' ', 'H', 'i', 's', 't', 'a', 'y', ' ', 's', 'i', 'a', 'y', ' ', 'a', 'a', 'y', ' ', 'e', 's', 't', 't', 'a', 'y']
h = 0
for h in range(len(list)):
if list[h] in string.whitespace:
if list[h + 1] in string.punctuation:
list.pop(h)
h = h + 1
else:
h = h + 1
else:
h = h + 1
print(list)
나는 오류를 얻을 :
내가 루프의 외부 안녕하세요 [H]를 인쇄 할 때이 ' 시간'하나를 색인에 아무 문제가 없습니다
File " ... ", line 110, in <module>
if list[h] in string.whitespace:
IndexError: list index out of range
내가 실수 한 부분이나 내가 바꿀 수있는 부분에 대한 아이디어?
전체 파일을 확인하는 것이 좋을 경우 알려주십시오.
네, 감사합니다. 내 원본 파일에서 'hi'는 내가 사용하고 있던 목록의 이름 이었지만 예제로 목록을 변경했습니다. 나는 나의 설명을 갱신 할 것이다. 그러나 여전히 동일한 오류가 발생합니다. 나는 h 값이리스트 '리스트'의 길이보다 더 큰 이유를 찾지 못한다. –
또한 목록에서 요소를 팝핑하기 때문에'list'의 크기가 줄어 듭니다. 그래서 초기에 20 엘리먼트 길이 였다면, 루프는 인덱스 = 19까지 계속 실행되지만'list'는 점점 짧아지고 있습니다. 그래서 어떤 시점에서는 더 이상 20 엘리먼트가 없습니다. – Antimony
오, 고마워. 나는 그 문제를 해결할 것이다. –