Python程序只得到唯一的,没有重复的lis

2024-04-19 06:24:07 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

给了我

list1=[100,200,300]

但我需要

list1=[200]

作为输出


Tags: 列表setlist1
2条回答

你可以用列表理解来做。但是你必须保留两个对象,初始列表和唯一元素列表。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]

您可以使用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]

相关问题 更多 >