2016-08-24 6 views
-1

私はx = (1, 2)というタプルxを持っていますが、私はzを設定しています。Pythonのメンバーシップを設定します

z = set(x) 
1 in z   # True 
2 in z   # True 
x in z   # False 

このエラーが発生する理由とどのように私はセットにタプルを追加することができますし、タプルとしての性質を維持する:私はこれを行うと仮定?

+1

コンストラクタを使用しますあなたがドキュメントを読んでも分かるように、タプルはiterableをとります。したがって、タプルのすべての要素を含むセットを作成します。あなたのセットにタプルを追加するには、単純に 'add'メソッドを使います – njzk2

+0

セットコンストラクタは引数として_iterable_をとります。あなたのタプルは2要素の繰り返し可能です。あなたは単一要素の反復可能なものを渡す必要があります(例えば、 'set([x]')、またはPython 2.7+構文的な砂糖--z = {x}を使用する必要があります。 –

+0

@ njzk2実際には、次の時間は無知を仮定しないでください;) – Woody1193

答えて

1

てみてくださいではなく、これらのいずれかを行う:

  • z = {x}
  • z = set([x])
  • z = set(); z.add(x)
  • z = set(); z.update([x])
0

セットコンストラクタにタプルを渡します。あなたはこのようにそれを渡したい場合:

x = ((1, 2),) 
z = set(x) 
1 in z  # False 
2 in z  # False 
(1, 2) in z # True 
関連する問題