python set顺序,python的set用法
Python的集合是一组无序且不可重复的元素,概念上相当于一个数学上的无序集合,数据结构相当于dict的key。
集合既然是集合,就必然要实现并、交、差、对称差等集合运算。
Set是一组无序的散列值,因此它可以用作字典中的键。比如链表、元组、字典等。之前在in集合中介绍过,可以用in运算符检查集合中是否存在元素,用len()获取集合中元素的个数,用for loop迭代其成员,用copy()返回浅层副本。不同的是集合本身是无序的,所以不索引就无法实现索引和切片操作。
相关:《Python视频教程》
集合具有以下特征:
元素不会重复出现。
元素必须是不可变的对象。
你可以把set想象成dict中的一个key,当然也只是局限在数据结构层面。
在Python中,set的底层结构和dictionary完全一样,都是哈希表。可以看作是有键无值的字典。
早期版本的Python中没有set类型。当时开发者直接建了一个{key1:none,key23360none}的字典来实现set的功能。
字典和set都是用空间换时间,浪费了很多空间。
集合的目的是解决判断一个元素是否出现在集合中的搜索效率问题。
timeit.timeit(stmt=10**4ins ,setup=s=range(10**5),number=10**5)
13.447274759909192
timeit.timeit(stmt=10**4ins ,setup=s=set(xrange(10**5)),number=10**5)
0.006686778187940945
列表的实现是链表,空间利用率高,添加元素快捷方便。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。