读书人

脚本报错:IndexError: list index ou

发布时间: 2012-03-15 11:50:38 作者: rapoo

脚本报错:IndexError: list index out of range

Python code
j=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)

读书人网 >perl python

热点推荐