循环遍历列表并删除 python 中的某些元素时索引超出范围

index out of bound while looping through a list and deleting some of the elements in python

我正在尝试遍历从 2 到 10000 的数字列表并删除 2、3、4 和 100 的倍数,但不删除这些数字,但每次我删除一个项目时,列表的长度都会缩小所以它会产生一个索引超出范围的错误我该如何解决?

这是一个可能适合您的示例。 它利用列表理解。 我不太理解你的代码,尤其是 while 循环中的索引增量,它只运行到 multiple 为 101.

def is_multiple(number):
    for m in range(2, 101):
        if number is not m and number % m == 0:
            return True


numbers = range(2, 10000)

numbers = [n for n in numbers if not is_multiple(n)]

print(numbers)