2016-05-30 101 views
0

我想要建立一個像段樹一樣的段詞典。 我的意思是我想使用序列(11,22)作爲關鍵,如果輸入值像11,它應該使用相同的密鑰。 如何做到這一點。(python)如何更改字典中的密鑰分配?

例如字典是{(11,22):35,(44,45):12}。 我想寫研究員:

for i in dictionary: 
    blad 
    blad 

如何更改詞典功能使其能夠「在」操作使用?

+1

你也許可以寫自己的插入方法將通過密鑰s和我檢查11:字典[i] =更新值 –

回答

0

當你使用元組是字典鍵時,它們必須完全用來引用該值。

在你的情況下,(11,22)是一個關鍵。而且你不可以單獨使用它們來識別值。

元組被用作鍵時,它的元素都意味着一起。 例如:{(<first_name>,<last_name>): <money_owed>}

爲什麼元組作爲鍵的元素不正確?

如:{('John','Well'):100, ('John','Mann'):200}

這裏first_name s爲兩個約翰和我們使用一個元組唯一標識的關鍵。

你想要的是像list作爲密鑰,並且你可能不會有list作爲字典key

你可以做的是讓他們獨立的(具有相同的值不同的密鑰):

{11: 35, 22: 35, 44:12, 45:12} 

參見:Dict keys in python

你可以使用這個方法(你會得到的問題,如果你有鑰匙的重複元素,如果你有,你不應該在元組使用元素的重複,以確定值):

l=[] 
for x in a: 
    for i in x: 
    l.append({i:a[x]}) 

有了這個,你得到這樣的輸出:[{11: 35}, {22: 35}, {44:12}, {45:12}]

然後,您可以將它作爲字典列表。

+0

這是一個元組不是名單。元組是可散列的。 – Pythonista

+0

@Pythonista更新回答。元組元素不能單獨用作鍵。 OP正試圖將列表作爲不允許的關鍵字。 –

+0

@AniMenon我知道我應該使用完整的元組作爲關鍵。 – user504909

0

寫你贏得插入方法

def insert(key,value,dict): 
    for i in dict: 
      if key in i: 
        dict[i]=value 
相關問題