与えられたリストのリスト:
L = [[1,2,3], [3,4,5], [1,2,3]]
各リストが一意であるリストを取得する方法:
L = [[1,2,3], [3,4,5]]
ありがとう
サブリストの順序を気にしない場合:
In [11]: list(map(list, set(map(tuple, L))))
Out[11]: [[3, 4, 5], [1, 2, 3]]
さらに良いことに、データ構造としてタプルのセットを使用するように移行する必要があります。
ちょっとジンクしますが、これはどうですか?
[list(el) for el in set(tuple(el) for el in L)]
リストは相互に比較できませんが、タプルは比較できるため、これは機能します。リストのリストから直接セットを作成しようとすると、エラーメッセージが表示されます。
unhashable type: 'list'
L = [[1,2,3], [3,4,5], [1,2,3]]
newlist = []
for item in L:
if item not in newlist:
newlist.append(item)
タプルのセットに変換してから、リストに戻すことができます。
L = [[1,2,3], [3,4,5], [1,2,3]]
setL = set(tuple(i) for i in L)
newL = list(list(i) for i in setL)
print newL
[[3、4、5]、[1、2、3]]