Python:for-loop错误输出

时间:2016-10-05 21:02:00

标签: python python-3.x loops for-loop output

无法理解为什么它在循环中丢失了一些索引? 索引编号为3。 我只想以这种方式删除独特的元素。我知道另一个,但我不知道这个(或我)有什么问题。

lst = [2, 7, 1, 9, 3, 5, 2, 1]

def check(lst):
    result = lst
    print(lst) #checking
    for num in lst:
        print("index:", num) #checking
        print("num:", num) #checking
        if lst.count(num) < 2:
            print("count:", lst.count(num)) #checking
            result.remove(num)
    return(result)

print(check(lst))

输出

[2, 7, 1, 9, 3, 5, 2, 1]
index: 2
num: 2
index: 7
num: 7
count: 1
index: 9
num: 9
count: 1
index: 5
num: 5
count: 1
index: 1
num: 1
[2, 1, 3, 2, 1]

1 个答案:

答案 0 :(得分:0)

您正在删除列表中的项目,因为您正在迭代它,这是您不应该做的。

result = lst不会复制lst;它会创建一个新的名称,它引用同一个对象。)

如果您只想删除重复的元素,可以使用set(尽管您可能会丢失订单):

lst = list(set(lst))