For循环在特定情况下不起作用Python

时间:2019-12-05 21:05:15

标签: python list loops for-loop

这对我来说完全是奇怪的,我什至不知道该怎么问这个问题,因为这种事情似乎是不可能的。但我会尽力解释。

在我正在构建的应用程序的一部分中,我有一个for循环,该循环获取一个列表并为该列表中的每个项目执行一些代码。它说,

for x in ints:
    for y in factors:
        if x % y != 0:
            factors.remove(y)

在我的情况下,为ints = [12, 25]factors = [1, 2, 3, 4, 6, 12]。当我使用不同的ints列表时,一切正常,但是在这种情况下,它完全跳过了我的因素列表中的3和6!

例如,如果我跑步

ints.remove(min(ints)) #removes 12 from ints
print(factors) #prints original list
print('') #adds new line

for x in ints:
    for y in factors:
        print(x)
        print(y)
        print('') #adds new line
        if x % y != 0:
            factors.remove(y)

print(factors) #prints final list

控制台给了我

[1, 2, 3, 4, 6, 12]

25
1

25
2

25
4

25
12

[1, 3, 6]

我的问题是,3和6去哪了?它们在原始因素列表中,但是for循环并未解决这些问题。

有人知道发生了什么吗?我知道这可能没有多大意义,但我们将不胜感激!

0 个答案:

没有答案