リストのリストからすべての重複リストを削除したい。
だから私はこのようなリストのリストを持っています。
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
私がしたい:
b = [[1,2],[3,4,5]]
やり方がわかりません。
リストのリストからすべての重複リストを削除したい。
だから私はこのようなリストのリストを持っています。
a = [[1,2],[1,2],[3,4,5],[3,4,5],[3,4,5]]
私がしたい:
b = [[1,2],[3,4,5]]
やり方がわかりません。
セットを使用できます:
b_set = set(map(tuple,a)) #need to convert the inner lists to tuples so they are hashable
b = map(list,b_set) #Now convert tuples back into lists (maybe unnecessary?)
または、リスト内包表記/ジェネレーターを好む場合:
b_set = set(tuple(x) for x in a)
b = [ list(x) for x in b_set ]
最後に、順序が重要な場合は、いつでも並べ替えることができます b:
b.sort(key = lambda x: a.index(x) )
リストの順序が重要でない場合は、mgilson の回答を参照してください。順序を保持したい場合は、次のようにします。
b = list()
for sublist in a:
if sublist not in b:
b.append(sublist)
これにより、元のリストの順序が維持されます。ただし、セットを使用するよりも遅く、冗長になります。