はタプルのリストがあります互いに素であること:Pythonの:ユニークなタプルを取得し、そのようなすべてのタプル全体の要素が
私がやりたい何all_tups = [(1, 2), (2, 1), (3, 4), (3, 5), (4, 3), (6, 8), (6, 7), (7, 9)]
: タプルを取得し、そのような任意のタプルで、要素が現れた場合にこの要素を持つ他のタプルは(タプル内の要素の位置にかかわらず)破棄されるべきです。
ので、可能ないくつかの目的の出力があります
[(1,2) (3,4) (6,8) (7,9)] OR
[(2,1) (4,3) (6,8) (7,9)]
のように。
元々、各タプルの最初の要素はPandasデータフレームの1つの列に由来し、各タプルの2番目の要素は同じデータフレームの別の列に由来します。実際の問題で
C1 C2 0 1 2 1 2 1 2 3 4 3 3 5 4 4 3 5 6 8 6 6 7 7 7 9
、データフレーム内の行数百万があります。したがって、私はfor-loopベースのソリューションを探しているわけではありません。 forループベースのソリューションを除いて、データフレームまたは何百万ものタプルで動作するアプローチはすべて問題ありません。私がこれまで試してみました何
: を私は凍結されたセットを使用して独自のタプルのリストを取得することができました:
uniq_tups = {frozenset(k) for k in all_tups}
(確かに私は、理想的にも避けたいリストの内包表記を使用)。これは私を与える:
{frozenset({1, 2}),
frozenset({6, 7}),
frozenset({3, 5}),
frozenset({3, 4}),
frozenset({6, 8}),
frozenset({7, 9})}
私は、このソリューションで進歩して非のためのループ方法を取得、またはループを避け、他のアプローチを使用するように見えることはできません。
私は現在Python 3.5を使用していますが、Python 2.7ソリューションも使用していません。
ご入力いただきありがとうございます。
ここで凍結されたセットの目的は何ですか?なぜタプルを直接使用しないのですか? –
これは独特のタプルを得るために暗闇の中でより多くのショットでしたが、依然として私が望む出力は得られません。 – Tanuj
私の指摘は、あなたがちょうど '{tup for all_tups}'を実行できたということです。 –