python:交换给出错误索引错误超出范围

时间:2013-12-11 12:48:17

标签: python-2.7

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 
这是我的学校项目。 这个特殊的代码块在python中给出了索引超出范围的错误? 我真的无法理解为什么我要交换'a'和'b'? 请帮助!

2 个答案:

答案 0 :(得分:0)

如果i从0到len(a),那么i+1超出了a。索引范围。

答案 1 :(得分: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)

和out:

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