0

实际值和峰值都是整数列表的列表。

在我的代码中,我尝试创建一个从整数列表到整数列表的字典,如下所示:

mapping={}
for a in actuals:
    mapping[a]=[v for v in peaks if v[0]==a[0]]

但是,它返回了错误

TypeError: unhashable type: 'list'

可能出了什么问题?

4

3 回答 3

2

看起来a是类型列表(actuals作为列表列表)。您正在尝试将一个键分配给一个字典,list这是不可能的。你必须想出一些其他的密钥,它是可散列的。

于 2013-06-04T15:30:31.227 回答
0

The keys of a dictionary must implement __hash__() and these function must return a value that doesn't change if the object change and should, on the other hand, compute the hash value depending on the object's contents. Because the contents of a list can change it doesn't implement __hash__().

于 2013-06-04T15:34:17.620 回答
0

如果每个a都是您不会更改的列表,则可以从中创建一个元组:

mapping={}
for a in actuals:
    mapping[tuple(a)]=[v for v in peaks if v[0]==a[0]]
于 2013-06-04T15:33:26.433 回答