簡體   English   中英

如何使用Python中的字典將元組的兩個元素相互映射?

[英]How can I map two elements of a tuple to each other using a dictionary in Python?

假設我有一個包含兩個元素的元組

(a, b)

我如何創建將第一個元素映射到第二個元素的字典,使其看起來像

{a : b}

我努力了

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

但我收到一個

TypeError:無法散列的類型“列表”

您收到的錯誤表示您的密鑰a是一個列表,不能用作密鑰。 像這樣

(['item'], 'value')

當你可能想要的是

('key', 'value')

通常,字典鍵是字符串,盡管並非嚴格如此。 它們也可以是整數或其他不可變的類型。 “不可變”表示無法就地更新。 可以通過添加或刪除項目來就地更新列表,因此無法對其進行適當的哈希處理,因此不能將其用作鍵。

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

new_dict = { tuple(tup[0]), tup[1] }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM