在Python中,我们可以使用set(list)
获取列表中的唯一项。但是,这样做会破坏值在原始列表中出现的顺序。是否有一种优雅的方式可以按照列表中显示的顺序获取唯一项目。
答案 0 :(得分:5)
这是一种优雅的方式:
from collections import OrderedDict
list(OrderedDict.fromkeys(list))
如果列表项都是可清除的,则它可以工作(如果将其转换为集合,则会知道所有列表项都是可清除的,不会触发异常)。
如果有任何物品不可清洗,那么有一种替代方案会以较差的性能为代价而更加强大:我将您推荐给Patrick Haugh的answer。
答案 1 :(得分:1)
l = []
for item in list_:
if item not in l:
l.append(item)
这对于真正大而多样的list_
来说变得缓慢。在这些情况下,还值得跟踪一组看到的值。