タプルのリストがあり、各タプルが変数、、、を表す場合、a
冗長b
なc
タプルを削除するにはどうすればよいですか?
冗長タプルとは、a
とb
が単純に交換されるタプルですc
が、同じです。したがって、この例では:
tups = [(30, 40, 50), (40, 30, 50), (20, 48, 52), (48, 20, 52)]
私の最終的なリストには、エントリの半分だけが含まれている必要があります。1つの可能な出力:
tups = [(30, 40, 50), (20, 48, 52)]
別
tups = [(40, 30, 50), (20, 48, 52)]
等
これを行う簡単なPythonの方法はありますか?
セットを使ってみましたが、(30, 40, 50)
とは異なり(40, 30, 50)
ますが、私にとっては冗長であり、そのうちの1つを保持したいと思います(どちらでも構いませんが、選択できる場合は、値の低いものから高いものの順序を選択します) 。タプルの最初の2つの要素をソートする方法があれば、セットを使用すると機能します。
実用的なソリューション(おそらく中間ステップとしてタプルをリストに変換する)を一緒にハックできると確信していますが、これを行うための簡単で明白な方法が私にはなじみがないかどうかを確認したかっただけです。
PS:この質問はPE#39によって部分的に動機付けられています。しかし、このPEの問題は別として、私は今、これをどのように簡単に(またはもし)行うことができるのか興味があります。
編集:
PE#39に慣れていない人のために少しコンテキストを提供するために-、、、a
直角三角形の辺b
をc
表すので、、a**2 + b**2 == c**2
明らかに順序が重要であるかどうかを確認しています。a
b