2013-12-11 3 views
0
a=[1,2,3,4,5,6,'a','b','c'] 
for i in range(len(a)): 
    if a[i]=='a': 
     temp=a[i+1] 
     a[i+1]=a[i] 
     a[i]=temp 

이것은 내 학교 프로젝트입니다. 이 특정 코드 블록이 파이썬에서 범위를 벗어난 인덱스 오류를 제공합니까? 저는 왜 'a'와 'b'를 바꾸려고하는지 이해할 수 없습니까? 도와주세요!python : 교환 오류 인덱스 오류가 범위 밖으로 벗어남

답변

0

i이 0에서 len (a) 인 경우 i+1은 a에서 색인을 생성 할 수있는 범위를 벗어납니다.

0
a=[1,2,3,4,5,6,'a','b','c'] 
print("list length: %d" % len(a)) 
for i in range(len(a)): 
if a[i]=='a': 
    print("swap a[%d] and a[%d]: " % (i+1, i)) 
    temp=a[i+1] 
    a[i+1]=a[i] 
    a[i]=temp 
    print(a) 

과 아웃 : 내가 immedately 여기를 게시 한 후 그것을 알아 냈다

list length: 9 
swap a[7] and a[6]: 
[1, 2, 3, 4, 5, 6, 'b', 'a', 'c'] 
swap a[8] and a[7]: 
[1, 2, 3, 4, 5, 6, 'b', 'c', 'a'] 
swap a[9] and a[8]: 
Traceback (most recent call last): 
    File "so.py", line 6, in <module> 
    temp=a[i+1] 
IndexError: list index out of range 
+0

그래 ... 나는 내가 추가 문을 "휴식"단지 한 그런 바보 같은 질문 – user3091069

+0

요청에 대한 유감입니다 for 루프에서 나옵니다. – user3091069

+0

@ user3091069 :), 당신은 응답을 accpet 수 있습니다. – atupal

관련 문제