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

Python:从嵌套列表中删除重复项,python,list,duplicates,Python,List,Duplicates,我想删除重复项,重复项可以反转。结果应该是: mylist = [[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]] 如何在Python中实现这一点 mylist = [[1,2],[4,5],[3,4]] 这不会保留原始列表的顺序,也不会保留子列表的顺序 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

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

mylist = [[1,2],[4,5],[3,4],[4,3],[2,1],[1,2]]
如何在Python中实现这一点

mylist = [[1,2],[4,5],[3,4]]
这不会保留原始列表的顺序,也不会保留子列表的顺序

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]

如果订单很重要,您可以始终使用OrderedDict

>>> 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]]

如果顺序不重要:

>>> 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]]

顺序重要吗?-1:避免命名要生成的变量-ins@Volatility,无顺序无所谓。@abhijit,这只是一个示例,不是真正的代码。即使如此,您也不应该将
列表
用作变量名。不完全是这样,假设您的
lst
中有
[0,0]
,这将折叠为
[0]
。没错。如果您希望输入总是只有2个项目,并且希望在输出中保留这一点,那么将1元素列表转换为2元素列表的后期处理非常容易:)
def rem_dup(l: List[List[Any]]) -> List[List[Any]]:
    tuples = map(lambda t: tuple(sorted(t)), l)
    return [list(t) for t in set(tuples)]