我有一个嵌套列表,如下所示:
lst = [[1,2,3],[1,2],[1,2,3],[2,3],[4,5],[2,3],[2,4],[4,2]]
我想在lst
中找到唯一的子列表。使用上面的例子,我想找到:
lst_set = [1,2,3],[1,2],[2,3],[4,5],[2,4]]
订单无关紧要。换句话说,[2,4]
和[4,2]
是相同的。
答案 0 :(得分:2)
set(tuple(sorted(i)) for i in lst)
答案 1 :(得分:2)
In [22]: lst = [[1,2,3],[1,2],[1,2,3],[2,3],[4,5],[2,3],[2,4],[4,2]]
In [23]: set(frozenset(item) for item in lst)
Out[23]:
set([frozenset([2, 4]),
frozenset([1, 2]),
frozenset([2, 3]),
frozenset([1, 2, 3]),
frozenset([4, 5])])
答案 2 :(得分:1)
查看内置的set()
函数。由于列表不可用,您可能需要在使用set()之前将列表转换为元组。
这意味着:
set([tuple(sorted(x)) for x in lst])