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)被视为“使用两个参数调用 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 回答