为什么我不能做以下事情:
a = (1,2,3)
dict[a] = 'hi'
TypeError: 'type' object does not support item assignment
答案 0 :(得分:7)
可以。问题是您正试图访问dict
类型本身的项目。
>>> a = (1,2,3)
>>> d = {}
>>> d[a] = "hi"
>>> d
{(1, 2, 3): 'hi'}
正如@mgilson所说:“只要所有元素都可以进行哈希处理,就可以对元组进行哈希处理。”
(请注意,您不应该为您的词典dict
命名,或列出list
等。这会影响内置名称,并且它们通常很方便,例如{{1 }}。)
答案 1 :(得分:5)
你可以使用元组作为键(只要它的所有项都可以清除):
>>> a = (1,2,3)
>>> b = {a:'hi'}
>>> b[(1,2,3)]
'hi'
>>>
您的问题是您正在尝试索引内置函数dict
:
>>> dict
<type 'dict'>
>>>
答案 2 :(得分:2)
dict
是一种类型。您想要创建该类型的实例。
d = {}
a = (1, 2, 3)
d[a] = 'hi'