如果值在列表中重复,则应该在python中将值都删除吗?

时间:2019-03-20 05:15:50

标签: python python-3.x python-2.7

如果我在该列表中有一个像[1,2,3,4,5,1,2,3,4,6]这样的列表,则它们也有重复值和现有重复值。

这是我的代码。

l=[1,2,3,4,5,1,2,3,4,6]
l1=[]
for i in l:
    if i not in l1:
         l1.append(i)
print(l1)

输出:

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

但是,我所需的输出应如下所示:[5,6]

3 个答案:

答案 0 :(得分:1)

使用collections.Counter

from collections import Counter
l=[1,2,3,4,5,1,2,3,4,6]

new_l = Counter(l)
print([k for k,v in new_l.items() if v==1])

输出:

[5,6]

仅循环

new_list = []

for i in l:
    if i not in new_list:
        new_list.append(i)
    else:
        new_list.remove(i)

print(new_list)

答案 1 :(得分:0)

我们可以在列表理解中使用count方法

l=[1,2,3,4,5,1,2,3,4,6]
print [x  for x in l if l.count(x) == 1 ]

输出

[5, 6]

答案 2 :(得分:0)

您可以找到所有重复项,然后建立一个没有重复项的新列表:

l = [1, 2, 3, 4, 5, 1, 2, 3, 4, 6]

temp = set()
dupes = set()
for i in l:
    if i in temp:
        dupes.add(i)
    else:
        temp.add(i)

[i for i in l if i not in dupes]
# [5, 6]