Python 错误 TypeError: Unhashable Type: List
本文将讨论 TypeError: unhashable type: 'list' 以及如何在 Python 中修复它。
Python 中的 TypeError: unhashable type: 'list'
当您将不可散列的对象(如列表)作为键传递给 Python 字典或查找函数的散列值时,会发生此错误。
字典是 Python 中的一种数据结构,以键值对的形式工作,每个键都有一个对应的值,要访问值的值,您将需要像数组索引这样的键。
字典的语法:
dic ={ "key": "Values"}
可哈希对象是那些值不随时间变化但保持不变的对象,元组和字符串是可哈希对象的类型。
代码:
# creating a dictionary
dic = {
# list as a key --> Error because lists are immutable
["a","b"] : [1,2]
}
print(dic)
输出:
TypeError: unhashable type: 'list'
我们使用列表 ["a","b"]
作为键,但编译器抛出了一个 **TypeError: unhashable type: 'list'**。
让我们手动查找列表的哈希值。
代码:
lst = ["a","b"]
hash_value = hash(lst)
print(hash_value)
输出:
TypeError: unhashable type: 'list'
hash()
函数用于查找给定对象的哈希值,但该对象必须是不可变的,如字符串、元组等。
Python 中的哈希函数
hash()
函数是一种加密技术,它加密不可变对象并为其分配一个唯一值,称为对象的哈希值。 无论数据大小如何,它都提供相同大小的唯一值。
代码:
string_val = "String Value"
tuple_val = (1,2,3,4,5)
msg= """Hey there!
Welcome to jiyik.com"""
print("Hash of a string object\t\t", hash(string_val))
print("Hash of a tuple object\t\t", hash(tuple_val))
print("Hash of a string message\t", hash(tuple_val))
输出:
Hash of a string object -74188595
Hash of a tuple object -1883319094
Hash of a string message -1883319094
散列值大小相同,并且对于每个值都是唯一的。
修复 Python 中的 TypeError: unhashable type: 'list'
要修复 Python 中的 TypeError,您必须使用不可变对象作为字典的键和 hash()
函数的参数。 请注意,在上面的代码中,hash() 函数与元组和字符串等可变对象完美配合。
让我们看看如何修复字典中的 TypeError: unhashable type: 'list' 。
代码:
# creating a dictionary
dic = {
# string as key
"a" : [1,2]
}
print(dic)
输出:
{'a': [1, 2]}
这次我们提供一个字符串“a”作为键,使用它很好,因为字符串是可变的。
相关文章
Python 中 ImportError: Missing Required Dependencies Numpy 错误
发布时间:2023/05/30 浏览次数:113 分类:Python
-
在本文中,我们将了解 ImportError: Missing required dependencies numpy,导致 ImportError 的原因以及如何使用命令行界面 (CLI) 解决它。
修复 Python 中的 TypeError: Can Only Join an Iterable 错误
发布时间:2023/05/30 浏览次数:172 分类:Python
-
本篇文章将讨论Python中的 TypeError: can only join an iterable 错误。修复Python中 TypeError: can only join an iterable 错误。由于它是 TypeError,我们可以得出结论,正在对给定对象执行不受支持的操作。
修复 Python 错误 SyntaxError: Invalid Token
发布时间:2023/05/30 浏览次数:85 分类:Python
-
在本文中,我们将了解什么是 SyntaxError: invalid token Python 错误以及如何修复它。 令牌是语句的重要组成部分,组合这些令牌可为 Python 编译器提供有意义的模式。
修复 Python 错误 SyntaxError: 'break' Outside Loop
发布时间:2023/05/30 浏览次数:93 分类:Python
-
本篇文章将讨论 Python 的 SyntaxError: 'break' outside loop 错误。循环和条件语句是任何编程语言不可或缺的一部分。修复 Python 中的 SyntaxError: 'break' outside loop 错误
修复 Python 错误 AttributeError: 'numpy.ndarray' Object Has No Attribute 'App
发布时间:2023/05/30 浏览次数:151 分类:Python
-
NumPy ndarray 没有这种称为 append 的方法。 ndarray 代表一个 n 维数组。 我们可以从 NumPy 对象调用它,而不是在 ndarray 上调用 append() 。
Python 中错误 AttributeError: 'NoneType' Object Has No Attribute 'Text'
发布时间:2023/05/30 浏览次数:191 分类:Python
-
当有一个 None 对象,并且您试图调用该对象的任何方法时,就会发生 AttributeError, 'NoneType' Object Has No Attribute 'Text' 错误。 在这里,对象是 None,你想调用方法文本。
Python 错误 TypeError: Function Object Is Not Subscriptable
发布时间:2023/05/30 浏览次数:141 分类:Python
-
我们将在本文中了解为什么会出现 TypeError: 'function' object is not subscriptable,以及我们如何在 Python 中修复此错误。
修复 Python 中OverflowError: Math Range Error错误
发布时间:2023/05/30 浏览次数:145 分类:Python
-
修复 Python 中的 OverflowError: math range 错误。OverflowError 表示引发的错误是由于超出了某些数据类型的范围。
解决 Python中 ImportError: No Module Named mysql.connector 错误
发布时间:2023/05/30 浏览次数:153 分类:Python
-
本篇文章介绍如何修复 Python 中的 ImportError: No module named mysql.connector 错误。安装 MySQL Connector 修复 Python中 ImportError: No module named mysql.connector 错误