Python:从嵌套列表中删除重复项

San*_*ani 4 python list duplicates

mylist = [[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
Run Code Online (Sandbox Code Playgroud)

我想删除重复的项目,重复的项目可以反转.结果应该是:

mylist = [[1,2],[4,5],[3,4]]
Run Code Online (Sandbox Code Playgroud)

我如何在Python中实现这一目标?

mgi*_*son 12

lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
fset = set(frozenset(x) for x in lst)
lst = [list(x) for x in fset]
Run Code Online (Sandbox Code Playgroud)

这不会保留原始列表中的顺序,也不会保留您的子列表的顺序.

>>> lst=[[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
>>> fset = set(frozenset(x) for x in lst)
>>> lst = [list(x) for x in fset]
>>> lst
[[1, 2], [3, 4], [4, 5]]
Run Code Online (Sandbox Code Playgroud)


Abh*_*jit 2

如果顺序很重要,您可以随时使用 OrderedDict

>>> unq_lst = OrderedDict()
>>> for e in lst:
    unq_lst.setdefault(frozenset(e),[]).append(e)


>>> map(list, unq_lst.keys())
[[1, 2], [4, 5], [3, 4]]
Run Code Online (Sandbox Code Playgroud)