在我的代码中,我遇到了索引错误-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/

10-12 00:13