在我的代码中,我遇到了索引错误-IndexError:列表索引超出范围。您能否1)解释为什么会这样,然后2)对我的代码进行一些更正?预先感谢您的答复
x = [1, 2, 3, 4, 5]
for i in range(len(x)):
if x[i] % 2 == 0:
del x[i]
最佳答案
当您使用del
时,可以减小数组的大小,但是初始循环会遍历数组的初始大小,因此会发生IndexError。
如果要删除项目,我建议使用列表理解:
x = [1, 2, 3, 4, 5]
x_filtered = [i for i in x if i%2]
关于python - 为什么会出现IndexError : list index out of range,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62593432/