2011-04-10 104 views
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

你可以簡單地使用文字作爲元組的關鍵:

>>> d = {(1, 2): ('A', 'B'), (3, 4): ('C', 'D')} 
>>> (1, 2) in d 
True 
>>> d[(1, 2)] 
('A', 'B') 
>>> d[(1, 2)][0] 
'A' 
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' 
2

問題在於f(a, b)被視爲「帶有兩個參數的調用f」,因爲parens和逗號是consu med作爲函數調用語法的一部分,不會看起來像一個元組。如果您必須將文字元組傳遞給函數,請使用f((a, b))

但由於dict.has_key已被棄用,只是使用in,這不便消失:(1, 2) in d