首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

脚本报错:IndexError: list index out of range解决方案

2012-03-15 
脚本报错:IndexError: list index out of rangePython codej0dos.listdir(DBDIR)for j in range(0,len(d

脚本报错: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)

热点排行