实际值和峰值都是整数列表的列表。
在我的代码中,我尝试创建一个从整数列表到整数列表的字典,如下所示:
mapping={}
for a in actuals:
mapping[a]=[v for v in peaks if v[0]==a[0]]
但是,它返回了错误
TypeError: unhashable type: 'list'
可能出了什么问题?
实际值和峰值都是整数列表的列表。
在我的代码中,我尝试创建一个从整数列表到整数列表的字典,如下所示:
mapping={}
for a in actuals:
mapping[a]=[v for v in peaks if v[0]==a[0]]
但是,它返回了错误
TypeError: unhashable type: 'list'
可能出了什么问题?
看起来a
是类型列表(actuals
作为列表列表)。您正在尝试将一个键分配给一个字典,list
这是不可能的。你必须想出一些其他的密钥,它是可散列的。
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__()
.
如果每个a
都是您不会更改的列表,则可以从中创建一个元组:
mapping={}
for a in actuals:
mapping[tuple(a)]=[v for v in peaks if v[0]==a[0]]