TypeError: unhashable type: 'list'

时间:2020-02-23 14:43:46  来源:igfitidea点击:

在本教程中,让我们解决问题 TypeError: unhashable type: 'list'

当您试图将“list”作为键放入“dictionary”或“set”时,会出现此错误,因为list是不可损坏的对象TypeError:unhable type通常在尝试哈希不可哈希的对象时引发。

让我们看下例子

dict1 ={ 1:'one', [2,10]:'two'}
print(dict1)

输出:

--------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-73-c4e2fd1e6bf0> in <module>
----> 1 dict1 ={ 1:'one', [2,10]:'two'}
      2 print(dict1)
 
TypeError: unhashable type: 'list'

我们可以通过传递给元组来解决此问题。

由于元组是不可变的对象,它可以用作字典中的键。

dict1 ={ 1:'one', tuple([2,10]):'two'}
print(dict1)

正如我们所看到的,一旦我们使用Tuple()函数,程序就好了。

让我们看到一个设置的另一个例子。

set1={[1,2],[3,4]}
print(set1)

输出:

--------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-75-31a9df7b7b7f> in <module>
----> 1 set1={[1,2],[3,4]}
 
TypeError: unhashable type: 'list'

我们可以通过传递给元组来解决此问题。

自从 tuple是不可变的对象,它可以用作字典中的键。

set1={tuple([1,2]),tuple([3,4])}
print(set1)

输出:

{(1, 2), (3, 4)}

正如我们所看到的,一旦我们使用 tuple()功能,程序工作正常。

什么是Hashable objects?

散列是一种将数据编码为固定大小int值的方法。
它通常用于设计高性能的数据结构。