从 python 中的列表中获取唯一值

2022-09-05 01:08:01

我想从以下列表中获取唯一值:

['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow']

我需要的输出是:

['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']

此代码的工作原理:

output = []
for x in trends:
    if x not in output:
        output.append(x)
print(output)

有没有我应该使用的更好的解决方案?


答案 1

首先正确声明您的列表,用逗号分隔。您可以通过将列表转换为集合来获取唯一值。

mylist = ['nowplaying', 'PBS', 'PBS', 'nowplaying', 'job', 'debate', 'thenandnow']
myset = set(mylist)
print(myset)

如果您将其进一步用作列表,则应通过执行以下操作将其转换回列表:

mynewlist = list(myset)

另一种可能更快的可能性是从头开始使用集合,而不是列表。那么你的代码应该是:

output = set()
for x in trends:
    output.add(x)
print(output)

正如已经指出的那样,集合不保持原始顺序。如果需要,应查找有序集实现(有关详细信息,请参阅此问题)。


答案 2

为了与我将使用的类型保持一致:

mylist = list(set(mylist))