2016-03-30 18 views
2

3タプルから特定の要素を抽出します。私がキーを知っているなら、3タプルから特定の要素を取得するにはどうすればよいですか?例えば、私はidを与えられ、それは与えられたIPに対応します。辞書を考える辞書

ありがとうございます。

+0

'ID = self.mapping [ "192.168.1.1"] [1]' – Selcuk

答えて

0

インデックスの基本的なPythonシーケンスを使用する必要があります。あなたのサンプルによると :

self.mapping['some IP'][1] 

チェックアウトdocumentation

0

まず、あなたはその全体のタプルを取得:

self.mapping["192.168.1.1"] 

次に、あなただけの第二の要素を取得します:

self.mapping["192.168.1.1"][1] 
2

Pythonの辞書やタプルは、ブラケット表記を使用して参照されています。辞書値は、対応するキーを使用して参照されます。タプル内の項目は、0から始まる番号を使用してインデックスで参照されます(つまり、タプルの最初の項目はインデックス0、2番目の1など)。あなたはインデックス使用してタプル項目を参照することができ

self.mapping['IP address'] 

あなたのケースでは

、あなたはIPアドレスのキーを使用して、辞書の値を参照することができる2つを組み合わせることにより

my_tuple[1] 

を、あなたは特定を参照することができます辞書値タプルの項目。あなたが使用するので、あなたの例では、IDは、インデックス1の第二の値である:

self.mapping['IP address'][1] 
1

あなたが適切にニシキヘビの方法であなたの辞書からデータを解凍するget()メソッドを使用することができます。

mac_addr, c_id, port = self.mapping.get('192.168.1.1', (None, None, None)) 

それ現在のIPがあなたのdictにない場合には、KeyError例外を発生させないようにします。

あなたが唯一のidフィールドを抽出したい場合:

_, c_id, _ = self.mapping.get('192.168.1.1', (None, None, None))