Python程序仅获取列表中没有重复项的唯一项

时间:2019-05-21 15:59:46

标签: python-3.x

考虑我在python list1=[123,123,724,458,458]中有一个列表,我希望输出为

list1=[724],列表中唯一的唯一值

list1=[100,200,300,300,100];
list1=set(list1);

给我

list1=[100,200,300]

但是我需要

list1=[200]

作为输出

2 个答案:

答案 0 :(得分:1)

您可以使用collections.Counter对列表中每个项目的频率进行计数,然后仅使用频率1进行选择。

from collections import Counter


def get_unique(li):
    #Create the counter to count frequencies
    c = Counter(li)

    #Create a list of items with count 1
    result = [key for key,value in c.items() if value == 1]

    return result

print(get_unique([100,200,300,300,100]))
print(get_unique([123,123,724,458,458]))

输出将为

[200]
[724]

答案 1 :(得分:0)

您可以通过列表理解来做到这一点。但是您必须保留两个对象,即初始列表和唯一元素列表。 count方法给出列表中一个元素的出现次数。

这里是一种方法:

list1 = [100, 200, 300, 300, 100]

# Convert again to list
list1_unique = list(set(list1))

ans = [unique for unique in list1_unique if list1.count(unique) == 1]
print(ans)
# [200]