繁体   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