脚本报错:IndexError: list index out of range解决方案
脚本报错:IndexError: list index out of rangePython codej0dos.listdir(DBDIR)for j in range(0,len(d
脚本报错:IndexError: list index out of range
Python codej=0d=os.listdir(DBDIR)for j in range(0,len(d)-1): if d[j][-3:] != 'sql': del d[j]
这段代码为什么总是报IndexError: list index out of range啊
调试了一下,发现出错后,j的值是301
但我led(d)值是300,我已经限制range(0,299),为什么j值会超出啊
[解决办法]用下标嘛,从后头往前循环,这样删除时比较妥当,列表不用从整效率也高些:
for j in range(len(j)-1, -1, -1):
或者改用一个副本做元素循环:
for j in d[:]:
..if j[-3:] != 'sql':
.....d.remove(j)