key的类型必须是不可变的
显而易见,不可变的数据类型有int,str,tuple
,但是此处需要注意一点,包含了list
的tuple
也是一个tuple
类型
>>> type(([1,2],2,3))
<class 'tuple'>
但是这种类型的tuple
不能用来作为key
>>> {([1,2],1,2):22,3:44,5:666}
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
{([1,2],1,2):22,3:44,5:666}
TypeError: unhashable type: 'list'
而只含有int
和str
类型的tuple
是可以用来作为key的
>>> {(1,2,3):22,3:44,5:666}
{(1, 2, 3): 22, 3: 44, 5: 666}