2013-05-14 79 views
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]是一樣的。

+0

您可以鏈接到一個? – user1728853

+2

找你自己。 – Marcin

回答

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])]) 
+0

不錯,不知道冰凍集 – Axarydax

+0

哦哇,謝謝。我也不知道冰凍套裝。 – user1728853

1

看看內置的set()函數。由於列表不可用,所以在使用set()之前,可能需要將列表變成一個元組。

這意味着:

set([tuple(sorted(x)) for x in lst]) 
2
set(tuple(sorted(i)) for i in lst)