2

キーとしてタプルを持ち、値としてタプルを持つ辞書があります。キーに基づいて辞書の値にアクセスする方法が必要です。例えば:

d = {}
d = { (1, 2) : ('A', 'B'),(3, 4) : ('C', 'B') }

まず、キー(1, 2)が辞書にすでに存在するかどうかを確認する必要があります。

何かのようなもの:

if d.has_key(1,2)
   print d[1]
   print d[2]
4

3 に答える 3

6

キーとしてリテラルタプルを使用するだけです。

>>> d = {(1, 2): ('A', 'B'), (3, 4): ('C', 'D')}
>>> (1, 2) in d
True
>>> d[(1, 2)]
('A', 'B')
>>> d[(1, 2)][0]
'A'
于 2011-04-10T08:36:12.233 に答える
2

問題はf(a, b)、括弧とコンマが関数呼び出し構文の一部として消費され、タプルのように見えるものが何も残らないため、「2つの引数を持つ呼び出しf」として扱われることです。f((a, b))リテラルタプルを関数に渡す必要がある場合に使用します。

ただし、dict.has_keyは非推奨になっているため、を使用するだけinで、この不便さはなくなります。(1, 2) in d

于 2011-04-10T08:36:53.280 に答える
0

他のときと同じように辞書を使用してください...

potential_key = (1,2)
potential_val = d.get(potential_key)
if potential_val is not None:
    # potential_val[0] = 'A'
    # potential_val[1] = 'B'
于 2011-04-10T08:33:43.673 に答える