目录
-
初识set
set是dict中key的集合,没有value,因此在set中没有重复的key,set是无序的
要创建一个set,需要提高一个list作为输入合集
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
注意,传入的参数[1, 2, 3]
是一个list,而显示的{1, 2, 3}
只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。。(其实我也不太懂这句话什么意思)
-
重复元素在set中自动被过滤
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
-
创建set
创建set的三种方式
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
>>> set3 = set('hello')
>>> set3
{'h', 'l', 'e', 'o'}
>>> s = {1,2,3}
>>> s
{1, 2, 3}
-
add(key)
添加元素到set中,可以重复添加,但不会有效果
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
-
update(iterable)
更新集合,参数为可迭代对象
set1 = {'a', 'b', 'x', 'y'}
set1.update(('hello', 'world'))
print(set1)
# 执行结果:
# {'hello', 'world', 'b', 'a', 'y', 'x'}
#add() 和 update() 比较:
# add(): 只能添加一个元素到集合
# update(): 可以添加多个元素到集合,参数为 iterable
-
remove(key)
删除元素
>>> s.remove(4)
>>> s
{1, 2, 3}
-
无序、无重复元素集合
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集、差集、补集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
#交集
>>> s1 & s2
{2, 3}
#并集
>>> s1 | s2
{1, 2, 3, 4}
#差集
>>> s1-s2
{1}
>>> s2-s1
{4}
#交叉补集
>>> s1^s2
{1, 4}
>>> s2^s1
{1, 4}
-
set和dict的区别
set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。
可变:列表、字典
不可变:字符串 、数字、元组
#试试把list或者dict放入set,看看是否会报错。
-
参考文档
1.https://www.cnblogs.com/hukey/p/9242339.html
2.查询官方文档
>>> help(set)