所以我有这个清单:a = [-11, 13, 13, 10, -11, 10, 9, -3, 6, -9, -6, -6, 13, 8, -11, -5, 6, -8, -12, 5, -9, -1, -5, 2, -2, 13, 14, -9, 7, -4]
并且通过使用一组我需要删除重复项并将它们保持在相同的顺序
我使用了这段代码:
def unique(a):
a = set(a)
return list(a)
当我使用它时它确实删除了重复项,但问题是它按数字顺序返回它们,如下所示:
>>> unique(a)
[-2, 2, 5, 6, 7, 8, 9, 10, 13, 14, -12, -11, -9, -8, -6, -5, -4, -3, -1]
如何在使用集合删除重复项时以与原始列表相同的顺序返回它?
编辑:
所以我使用了这段代码,因为它有效:
def unique(a):
seen = set()
return [seen.add(x) or x for x in a if x not in seen]
但有人可以向我解释它的作用吗?因为我需要再做一次,但它返回的列表没有负数,除非我理解该代码的作用,否则我不能这样做