这对我来说完全是奇怪的,我什至不知道该怎么问这个问题,因为这种事情似乎是不可能的。但我会尽力解释。
在我正在构建的应用程序的一部分中,我有一个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循环并未解决这些问题。
有人知道发生了什么吗?我知道这可能没有多大意义,但我们将不胜感激!