2024-04-25 01:22:45 发布
网友
实际值和峰值都是整数列表。你知道吗
在我的代码中,我尝试从整数列表到整数列表创建一个字典,如下所示:
mapping={} for a in actuals: mapping[a]=[v for v in peaks if v[0]==a[0]]
但是,它返回了错误
TypeError: unhashable type: 'list'
可能出了什么问题?你知道吗
如果每个a都是一个您不打算更改的列表,您可以从中生成一个元组:
a
mapping={} for a in actuals: mapping[tuple(a)]=[v for v in peaks if v[0]==a[0]]
字典的键必须实现__hash__(),并且这些函数必须返回一个值,该值在对象更改时不会更改,另一方面,应该根据对象的内容计算哈希值。因为列表的内容可以更改,所以它不实现__hash__()。你知道吗
__hash__()
看起来a是list类型(actuals是list的列表)。您正在尝试将字典的键分配给list,这是不可能的。你必须想出一些其他的密钥,这是散列的。你知道吗
actuals
list
如果每个
a
都是一个您不打算更改的列表,您可以从中生成一个元组:字典的键必须实现
__hash__()
,并且这些函数必须返回一个值,该值在对象更改时不会更改,另一方面,应该根据对象的内容计算哈希值。因为列表的内容可以更改,所以它不实现__hash__()
。你知道吗看起来
a
是list类型(actuals
是list的列表)。您正在尝试将字典的键分配给list
,这是不可能的。你必须想出一些其他的密钥,这是散列的。你知道吗相关问题 更多 >
编程相关推荐