3

私は検索しましたが、私のものと同じ質問はまったく見つかりませんでした。Python のリストのリストから重複を削除したい。ただし、リスト内の値の順序は気にしません。私が現在行っている方法では、時間がかかりすぎます。

私がしたいこと:

A = [[1,2,3] , [2,3,4] , [3,4,5] , [3,2,4]]

A を検索して、すべての重複を削除したいと考えています。ここでの重複は [2,3,4] と [3,2,4] です。これは次のように削減されます。

smaller_A = [[1,2,3] , [2,3,4], [3,4,5]]

私が現在行っている方法:

todelete = []
for i in range(len(A)):
    for j in range(i+1,len(A)):
        if set(A[i]) == set(A[j]):
           todelete.append(j)

todelete = sorted(set(todelete))

smaller_A= [A[i] for i in range(len(A)) if i not in todelete]

繰り返しますが、これは機能しますが、リストが大きい場合は非常に時間がかかります。何か案は?ありがとう!

4

2 に答える 2

1

この方法で並べ替えを行うと、トリックを実行できます

for i in range(len(A)): A[i].sort()

次に、重複を削除します

于 2013-09-04T21:29:24.150 に答える