2017-06-12 45 views
0

比方說,我有一個有兩個元素的元組如何使用Python中的字典將元組的兩個元素映射到彼此?

(a, b) 

我怎樣才能創建的第一個元素映射到第二所以它看起來像

{a : b} 

我試圖

字典
new_dict = {tup[0]:tup[1]} 

,但我收到

TypeError: unhashable type 'list'

+0

'{tup [0]:tup [1]}'可能是。 –

+0

到目前爲止您嘗試過什麼? – Nurjan

+0

我試過new_dict = {tup [0]:tup [1]}但我收到一個「TypeError:unhashable type'list'」 –

回答

0

您收到的錯誤表示您的密鑰a是一個不能用作關鍵字的列表。事情是這樣的

(['item'], 'value') 

當你可能想要的是

('key', 'value') 

通常,字典鍵是字符串,雖然不是嚴格意義上。它們也可以是整數或其他不可變類型。 「不可變」意味着它不能被更新。可以通過添加或刪除項目來更新列表,因此無法正確散列並隨後不能用作關鍵字。

0

您的錯誤消息表明您的元組的第一項是一個列表。列表是可變的,因此不能是字典鍵,但元組可以。因此,將列表中的可能鍵轉換爲元組:

new_dict = { tuple(tup[0]), tup[1] } 
相關問題