无法理解为什么它在循环中丢失了一些索引? 索引编号为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]
答案 0 :(得分:0)
您正在删除列表中的项目,因为您正在迭代它,这是您不应该做的。
(result = lst
不会复制lst
;它会创建一个新的名称,它引用同一个对象。)
如果您只想删除重复的元素,可以使用set
(尽管您可能会丢失订单):
lst = list(set(lst))