说明
-
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的,有的时候,我们只想要 dict 的 key,不关心 key 对应的 value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了.
-
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中。最后,set存储的元素也是没有顺序。
-
set持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。总结一句:无序,不重复.
-
因为set的值不会重复所以当我们传入重复的值的时候就会把重复值删掉例: s = set(['a' , 'b' , 'c' , 'c'])打印出来之后是 ['a','b','c']。而且len(s) = 3而不是4.
赋值
-
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:一是把新的元素添加到set中,二是把已有元素从set中删除。
#添加 s = set([1 ,2 ,3 ,4]) s.add(5) print(s) # ([1,2,3,4,5]) #如果set中已存在值(例5),则值不会被添加到set中 # 移除 s.remove(5) print(s) #()[1,2,3,4] #如果remove的值不存在于set中时会报错
取值
- 由于set是无序的所以不能通过索引的方式获取set值。访问set值就是判断set中是否存在该值.注:set区分大小写.
s = set(['a' , 'b' , 'c’]) print('b' in s) #True # 遍历 for key in set: print(ley)
```
快速API
s = set([1, 2, 3])
# add
s.add(4)
# delete
s.remove(4)
# update
s.update([5])
print(s) # ([1,2,3,5])
# find
print (5 in s)