Python数据使用set对数据去重报错TypeError: unhashable type: 'list' 这个错误信息“TypeError: unhashable type: 'list'”表明你试图将一个列表(list)放入一个集合(set)中,但列表是可变的,所以它们不能被用作集合的键。 具体来说,集合中的元素必须是不可变的,这样才能保证集合的唯一性。而列表是可变的,这意味着...
可能原因: 1、set不支持list和dict类型的元素 解决方法: 1、list类型数据可以改为tuple类型。 t = ('juzicode.com','桔子code','橙子') l = ['juzicode.com','桔子code','橙子'] l2 =tuple(l) s = {t,l2} print(s)
查找和插入的速度极快,不会随着key的增加而变慢; 需要占用大量的内存,内存浪费多。 而list相反: 查找和插入的时间随着元素的增加而增加; 占用空间小,浪费内存很少。 要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的,就不能作为key:...
(1)因为 list 是可变的在它的生命期内,你可以在任意时间改变其内的元素值。 (2)所谓元素可不可哈希,意味着是否使用 hash 进行索引 (3)list 不使用 hash 进行元素的索引,自然它对存储的元素没有可哈希的要求;而 set 使用 hash 值进行索引。 https://blog.csdn.net/lanchunhui/article/details/50955238...
set([2, 3])>>> s1 |s2 set([1, 2, 3, 4]) set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。
现象:往set对象里add列表、集合对象时,时提示他们是不可hash的,而对于tuple类型就可以。 原因:set里面的对象是hash存储(所以是无序的),对于python万物都是对象,如果存储一个list对象,而后改变了list对象,那set中刚才存储的值的hash就变了。 结论:set是hash存储,必须存储不变的对象,例如字符串、数字、元组等。
用list函数创建空列表。用tuple函数创建空元组。用dict函数创建空字典。用set函数创建空集合。# list函数...
在Python中,set和list是两种不同的数据结构,它们之间有以下几点区别:1. 唯一性:set中的元素是唯一的,而list中的元素可以重复多次。2. 顺序性:set中的元素是无序的,而li...
除了上篇文章介绍的几种数据类型之外,Python还提供了几种内置的数据类型,有列表(list)、元组(tuple)、字典(dictionary)和集合(set)。 一、列表(list)和元组(tuple) 1、list(列表) 列表(list)是Python中最基本的数据结构。list是有序的集合,可以存放不同数据类型的数据,并且list中的每个元素的都对应着一个索引来...