1

我有一个看起来像这样的嵌套列表:

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]都是一样的。

4

3 回答 3

3
set(tuple(sorted(i)) for i in lst)
于 2013-05-14T18:43:47.987 回答
1

看一下内置set()函数。由于列表是不可散列的,您可能需要在使用 set() 之前将列表转换为元组。

这意味着:

set([tuple(sorted(x)) for x in lst])
于 2013-05-14T18:42:38.887 回答
1
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])])
于 2013-05-14T18:47:12.607 回答