set和dict类似,也是一组key的集合,但不存储value。
初始化
像dict一样,集合也可以通过构造方法或者花括号{}来创建。
创建空集合
注意下面两种写法的区别:
1 | # 创建空字典 |
输出:
1 | <class 'dict'> |
创建非空集合
1 | # 使用花括号创建集合 |
输出:
1 | <class 'set'> {1, 2} |
添加元素
add方法每次添加一个元素到集合中。如果该元素已经在集合中,调用该方法将不会有任何效果。
1 | test_set = set() |
输出:
1 | {1} |
删除元素
使用pop
pop方法删除并返回任意的集合元素。若集合为空,将导致KeyError。
1 | x = set([1,2]) |
输出:
1 | 1 |
删除指定元素
remove方法可以删除集合中的指定元素。若该元素不在集合中,将导致KeyError。
1 | x = {1, 2} |
输出:
1 | {1} |
discard方法也可以删除集合中的指定元素。若该元素不在集合中,则什么也不会发生。
1 | x = {1, 2} |
输出:
1 | {1} |
注意remove方法和discard方法的区别:若待删除的元素不在集合中,remove方法将产生KeyError;而discard方法什么也不会发生。
删除所有元素
clear方法可以删除集合中的所有元素。
1 | x = {1, 2, 3} |
输出:
1 | {1, 2, 3} |
合并集合
使用union
union方法可以合并多个集合,并返回合并后的集合,但调用该方法的集合不会变化。
1 | x = {1, 2, 3} |
输出:
1 | {1, 2, 3, 4, 5, 6, 7, 8, 9} |
可以看到,调用union方法后,x本身并未发生改变,而是创建了一个新的集合。
使用update
update方法会将其他集合合并到当前集合中。
1 | x = {1, 2, 3} |
输出:
1 | {1, 2, 3, 4, 5, 6, 7, 8, 9} |
可以看到,调用update后,x发生了变化。
集合交
intersection可以求多个个集合的交集。
1 | x = {1, 2, 3} |
输出:
1 | {2, 3} |
集合差
difference方法可以求两个或多个集合的差。
1 | x = {1, 2, 3} |
输出:
1 | {1} |
复制集合
copy方法可以返回集合的浅拷贝。
1 | x = {1, 2, 3} |
输出:
1 | {1, 2, 3} |