我是新來的Python,我有一個問題,我需要從字典中的鍵是元組中獲取值的問題。例如:當鍵是一個元組時訪問字典值
ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
我知道,每個號碼出現的人的鑰匙,我要訪問其中關鍵在數字2的值(該值將是3)。
我可以獲得有關如何訪問此值的任何幫助嗎?
我是新來的Python,我有一個問題,我需要從字典中的鍵是元組中獲取值的問題。例如:當鍵是一個元組時訪問字典值
ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
我知道,每個號碼出現的人的鑰匙,我要訪問其中關鍵在數字2的值(該值將是3)。
我可以獲得有關如何訪問此值的任何幫助嗎?
你可以「變平」使用下面的理解字典:
ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
flat = {element: value for key, value in ones.items() for element in key}
現在,你可以通過flat
得到的元組任意鍵的值。
可以遍歷那些,並檢查2出現在關鍵
In [24]: ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
In [25]: for k, v in ones.iteritems():
....: if 2 in k:
....: print v
....:
3
,當你正在尋找一個關鍵的一個子元素不能正常使用的字典訪問。你必須循環:
value_for_2 = next(ones[key] for key in ones if 2 in key)
會找到第一個匹配(其中'第一'是任意的,因爲字典沒有排序)。
如果你的元組元素真的是獨一無二的,和你需要做多個查找窗口,然後將其轉換你的字典第一個使用元組元素鍵,而不是:
converted = {t_elem: value for key in ones for t_elem in key}
不要擔心這裏重複的價值。值不需要是唯一的,並且您所做的只是存儲參考文獻;上述內容不會創建值的副本。
現在你可以再次使用快捷鍵查詢:
value_for_2 = converted[2]
ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
for key, value in ones.items():
if 2 in key:
print(value)
出來:
3
字典應該包含您打算與訪問它的鍵。 – TigerhawkT3