2017-10-23 18 views
2

Iはタプルの集合を有するセット内の要素を見つけ、各タプルは、有限個の要素を有しています。パイソン - タプル

私は私が探しています特定のコンポーネントを持って、そのセット内の特定の要素、 があるかどうかを確認したいと思います。

set_of_tuples = {(el_11, el_12, el_13), (el_21, el_22, el_23)} 
a = (dont_care, el_12, dont_care) 

タプル要素は、その特定のコンポーネントを含むセット内に配置できますか。

私は、リストの内包表記を使用してこれを行うことができますが、それは非常に遅いproccessです。やって、それが存在する場合、私は確認することができます

el = (1,2) 
set_of_tuples = {(1,2), (2,3) ...} 

: エルをset_of_tuplesでセットを使用して

は、簡単な例で、私はこのような何かを行うことができます。

、例えば、そこにまったく同じことを行う方法があるが、いくつかのタプルの要素を気にすることなく何私が求めてASMです:

el = (_,2) 
el in set_of_tuples 
+0

だから、特定の要素( 'el_12')は、特定の位置(第2位置)に発見されたかどうかを確認したいですか? – Adirio

+0

が正しい。 @Adirio –

+1

あなたのためにいくつかのコードを書くことが望ましいようです。多くのユーザーは、苦労しているコーダーのコードを作成したいと考えていますが、通常、ポスターが既に問題を解決しようとしているときにのみ役立ちます。この努力を実証する良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、予想される出力、実際に得られる出力(コンソール出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性のある回答が増えます。 [FAQ]と[ask]を確認してください。 – MooingRawr

答えて

4

この要素は、任意の組に存在する場合

set_of_tuples = {(11, 12, 13), (21, 22, 23)} 
el = 12 
exists = any(el in t for t in set_of_tuples) 

print(exists) # True 

:それは any()機能により

を設定しました

外側セット内位置を取得するには:

pos = -1 
for i,t in enumerate(set_of_tuples): 
    if el in t: 
     pos = i 
     break 

print(pos) 
+0

これは、その要素が存在することを確かに検証します。 その要素の特定の場所を見つけることも可能ですか? –

+0

@RafaelMarquesは、あなたは、内側のタプルまたは外側のセット内の位置、または両方の位置内の特定の場所を意味ですか? – RomanPerekhrest

+0

私は外殻セット内の位置を意味します。 @RomanPerekhrest –