知行编程网知行编程网  2022-11-18 04:30 知行编程网 隐藏边栏  22 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python set有序吗的相关知识,希望可以帮到处于编程学习途中的小伙伴

python set 是有序的吗?

Python的集合是一个无重复元素的无序集合,在概念上相当于数学上的无序集合,相当于数据结构中的dict键。

既然集合是一个集合,那么一定可以实现并集、交集、差集、对称差集等集合操作。

集合是一组无序的可散列值,因此它可以用作字典中的键。 set和前面介绍的list、tuple、dict等一样,可以使用in操作符检查元素是否存在于set中,使用len()查找set元素的个数,使用for循环迭代其成员,并使用 copy() 返回浅拷贝。不同的是集合本身是无序的,所以没有索引就无法实现索引和切片操作。

set具有以下特性:


·

元素不重复出现


·

元素必须是不可变对象

你可以将 set 视为 dict 中的键,但仅限于数据结构级别。

在Python中set的底层结构和字典是完全一样的都是哈希表,就当成是只有键没有值的字典就可以了。

Python 的早期版本没有集合类型。当时开发者直接构建了{key1:None, key2:None}的字典来实现set的功能。

字典和set都是用空间来换时间,空间浪费很大。

集合的目的是解决判断某个元素出现在集合中的搜索效率问题。

>>> timeit.timeit(stmt='10**4 in s',setup='s=range(10**5)', number=10**5)
13.447274759909192
>>> timeit.timeit(stmt='10**4 in s',setup='s=set(xrange(10**5))', number=10**5)
0.006686778187940945
>>>

列表的实现是链表,空间利用率高,添加元素又快又容易。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享