1. ホーム
  2. python

[解決済み] リストのリストで重複するリストを削除するには?[重複]する

2022-03-04 06:08:19

質問

リストの一覧から重複するリストをすべて削除したい。

ということで、このようなリストのリストがあります。

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) )