这样,我们就可以避免“unhashable type: list”错误,并正确地使用字典来存储和检索数据。
现象:往set对象里add列表、集合对象时,时提示他们是不可hash的,而对于tuple类型就可以。原因:set里面的对象是hash存储(所以是无序的),对于python万物都是对象,如果存储一个list对象,而后改变了list对象,那set中刚才存储的值的hash就变了。结论:set是hash存储,必须存储不变的对象,例如字符串、数字、元组等。
try: printlist(set(a))# TypeError: unhashable type: 'list' exceptTypeError, e: print"Error:", e # tuple list a=[(1,2), (3,4), (5,6), (7,8), (9,0), (1,2)] print"orginal:", a printlist(set(a))
如果我使用内置的 set 函数从此列表中删除重复项,则会出现错误 TypeError: unhashable type: 'list' 我使用的代码是 TopP = sorted(set(TopP),reverse=True) 其中TopP 是一个列表,就像上面的例子一样 set() 的这种用法是错误的吗?有没有其他方法可以对上面的列表进行排序? 集合要求它们的项目是可散列的。在 ...
当您尝试将列表(list)作为字典的键或放入集合中时,就会遇到 TypeError: Unhashable Type: List 错误。解决这个问题的方法是使用一个可哈希的类型来代替列表。在大多数情况下,元组(tuple)是一个不错的选择,因为元组是不可变的,因此它们是可哈希的。以下是一个代码示例,演示如何将列表转换为元组并避免 TypeError 错误...
我不断收到 TypeError: unhashable type: 'list' 。我知道字典中的键不能是列表,但我试图将我的值变成列表而不是键。我想知道我是否在某处犯了错误。
现象:往set对象里add列表、集合对象时,时提示他们是不可hash的,而对于tuple类型就可以。 原因:set里面的对象是hash存储(所以是无序的),对于python万物都是对象,如果存储一个list对象,而后改变了list对象,那set中刚才存储的值的hash就变了。 结论:set是hash存储,必须存储不变的对象,例如字符串、数字、元组等。
File"<stdin>", line 1,in<module>TypeError: unhashable type:'list' >>>tuple(b) (1,) >>> a.add(b) >>> 现象:往set对象里add列表、集合对象时,时提示他们是不可hash的,而对于tuple类型就可以。 原因:set里面的对象是hash存储(所以是无序的),对于python万物都是对象,如果存储一个list对象,而后改变...
以下皆报错TypeError: unhashable type: 'list' 代码语言:javascript 代码运行次数:0 运行 AI代码解释 # list 作为 dict 的 key key=["news","hot"]news={}news[key]=["news_1","news_2"]# list 作为set的 key 来去重 categories=[["news","hot"],["sports","nba"]]categories=set(categories) ...
File"<stdin>", line 1,in<module>TypeError: unhashable type:'list' >>>tuple(b) (1,) >>> a.add(b) >>> 现象:往set对象里add列表、集合对象时,时提示他们是不可hash的,而对于tuple类型就可以。 原因:set里面的对象是hash存储(所以是无序的),对于python万物都是对象,如果存储一个list对象,而后改变...