Python附加字典,TypeError:不可用类型?

时间:2010-10-14 00:50:17

标签: python dictionary

abc = {}
abc[int: anotherint]

然后错误出现了。 TypeError:不可用的类型?为什么我收到这个? 我试过str()

3 个答案:

答案 0 :(得分:8)

这似乎是一个语法问题:

>>> abc = {}
>>> abc[1] = 2
>>> abc
{1: 2}
>>> abc = {1:2, 3:4}
>>> abc
{1: 2, 3: 4}
>>> 

至少以下语法不正确

abc[int: anotherint]

我猜你想说

abc = [int: anotherint]

哪个也不对。正确的方法是

abc = {int: anotherint}

除非在这种情况下已定义abc

abc[int] = anotherint

也是一个有效的选项。

答案 1 :(得分:3)

有两个错误 - 首先你有一个逻辑错误 - 我真的不认为你想要int之间的字典切片(类型,这是不可用的[见下文])和数字anotherInt。当然不是这在python中是可能的,但这就是你想说的。

其次,假设你的意思是x [{int:anotherInt}]:

该错误意味着您不能将其用作字典中的键,因为规则python不喜欢您使用可变类型作为字典中的键 - 如果您稍后将内容添加到字典中会使事情变得复杂或列表......考虑以下非常令人困惑的例子:

x={}
x[x]=1

如果你试图下标那个你希望返回1的数组,你会期望这样做吗?

x[{}]
x[{x:x}]
x[{{}:x}]
x[x]

基本上,当散列可变类型时,你可以说,{} != {}关于哈希值,因为它们存储在内存中的不同位置,或者你最终会出现奇怪的递归情况

答案 2 :(得分:1)

由于标题是附加的,并且没有一个答案提供了将字词附加到字典的解决方案,我试试看:

abc = {}
abc[1]= 2
abc['a'] = [3,9,27]
==> abc = {1:2, 'a':[3,9,27]}