我对此代码有疑问:

    poss = [6,9,20]

for n in range(6,66):
    if(n%6) == 0 or (n%9) == 0 or (n%20) == 0:
        poss.append(n)
poss.sort()
count = 0
prev = poss[0]

for p in poss:
    print p
    if prev == p:
        del poss[count]
    count += 1
    prev = p

print poss


第二个for循环旨在消除poss列表中的重复项,并且此代码可以正常工作。但是,如果我更改行:

prev = poss[0]




prev = 0


它不会正确删除它们。对于我的一生,我不知道为什么。

最佳答案

为什么不将poss放入set来删除重复项呢?例如。

poss = set(poss)


要回答您的原始问题,prev = poss[0]prev = 0不同,因为poss[0]不为0。

关于python - 为什么“prev = poss [0]”和“prev = 0”的行为不同?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5929814/

10-11 07:37