TypeError: unhashable type: 'list' 如何解决?

 

 

 

 

 X0和W1分别是两个数组list,但是在求差集时一直报以上错误。好像是因为Python不支持dict的key为list或dict类型,因为list和dict类型是unhashable(不可哈希)的。也就是说,list的索引不是使用hash值的。所以每次在做两个数组的运算时,都会报错。所以解决方法是把它内部元素改成非list的,比如说:

因为在我的代码里面,list内部的数据是这样的,是为了表示点的坐标而存在的:

 

 可以通过降维,将数组内部变为一维的形式来处理,即:

s =set()
for item inTi:
    for i in item:
        s.add(i)
print(s)

但是这样处理之后,没有办法正确表示坐标,所以用以下方法来解决:

Wi = [val for val in Xi if val in W]


    

posted @ 2020-05-23 21:06  LLLLgR  阅读(27834)  评论(0编辑  收藏  举报