2015-06-12 16 views
-1

現在我有一本字典度,記名字叫筆記:Key作爲價值及價值爲重點

notes = { 
    1: 'C', 
    2: 'D', 
    3: 'E', 
    4: 'F', 
    5: 'G', 
    6: 'A', 
    7: 'B' 
} 

是否有一種方式來獲得?

note[1] == 'C' 
note['C'] == 1 

回答

3

更新您的字典內有鑰匙的價值和價值觀顛倒映射關係鍵:

notes = { 
    1: 'C', 
    2: 'D', 
    3: 'E', 
    4: 'F', 
    5: 'G', 
    6: 'A', 
    7: 'B' 
} 


notes.update({v:k for k,v in notes.iteritems()}) 

print(notes) 
{'A': 6, 1: 'C', 2: 'D', 3: 'E', 4: 'F', 5: 'G', 6: 'A', 7: 'B', 'F': 4, 'C': 1, 'G': 5, 'B': 7, 'E': 3, 'D': 2} 
print(notes["C"]) 
print(notes[1]) 
1 
C 

這會工作在任何情況下,原字典中沒有任何價值已經出現在字典中。

+1

我知道他們建議我沒有閱讀過的所有主題,但我從未見過dict.update()...太棒了。 – marcus

2

試試這個

爲Python 2.7+/3+:

inv_dict = {val: key for key, val in notes.items()} 

這種方式,您可以有兩個字典

1

有沒有辦法找到一個逆映射,而不迭代整個字典。您可以創建反向映射另一個字典,如果你需要經常使用它:

inv_dic = {val: key for key, val in map.items()}