2016-11-28 12 views
-1

私はタプルのジェネレータを持っており、同じ要素を含むタプルを削除する必要があります。私は反復のためにこの出力が必要です。ジェネレータPython 3.5の同じ要素を持つ順序とは無関係に重複するタプルを削除

入力=((1,1)、(1,2)、(1,3)、(3,1)、(3,2)、(3,3))

出力=( (1、1)、(1、2)、(1、3))出力の順序は、私はこの質問チェックして

重要ではありませんが、それはリストについてです:私は達成するために発電機を使用しDelete duplicate tuples with same elements in nested list Python

データが非常に大きいため、最速の結果が得られます。

EDIT: 受け入れられた回答に加えて、私はitertoolsの組み合わせ方法を使用できることも発見しました。順序は重要ではありません場合は、タプルを使用しているのはなぜ

unique_combinations = itertools.combinations(Input, 2) 
+1

を削除するためにセットに追加? –

+0

^^あなたは 'frozenset'の方が良いでしょう – inspectorG4dget

+0

これは、abs(1,3)の最大値を確認する組み合わせです。 – ConSod

答えて

1

あなたはそれをソートすることにより、データを正規化することができ、その後、重複

>>> Input = ((1, 1), (1, 2), (1, 3), (3, 1), (3, 2), (3, 3)) 
>>> Output = set(tuple(sorted(t)) for t in Input) 
>>> Output 
{(1, 2), (1, 3), (2, 3), (1, 1), (3, 3)} 
関連する問題