为什么我不能做以下事情:
a = (1,2,3)
dict[a] = 'hi'
TypeError: 'type' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
有可能.问题是你正在尝试访问dict类型本身的项目.
>>> a = (1,2,3)
>>> d = {}
>>> d[a] = "hi"
>>> d
{(1, 2, 3): 'hi'}
Run Code Online (Sandbox Code Playgroud)
正如@mgilson所说:"只要所有元素都可以进行哈希处理,就可以对元组进行哈希处理."
(请注意,您永远不应该命名您的词典dict或列表list等.这会影响内置名称,并且它们通常很方便,例如dict(zip(keys, values)).)
您可以使用元组作为键(只要其所有项都可以清除):
>>> a = (1,2,3)
>>> b = {a:'hi'}
>>> b[(1,2,3)]
'hi'
>>>
Run Code Online (Sandbox Code Playgroud)
您的问题是您正在尝试索引内置函数dict:
>>> dict
<type 'dict'>
>>>
Run Code Online (Sandbox Code Playgroud)