set集合是一种无序、无重合值、可迭代的数据集合。
set函数
set可以通过set()函数对序列进行强制转换为set类型的数据,也可以通过直接赋值的方式生成set类型数据:
>>> a = set((1,2,3,4,5)) >>> a {1, 2, 3, 4, 5} >>> a = {1,2,3,4,5} >>> a {1, 2, 3, 4, 5}
方法
通过函数dir(set)可以看到set的函数有哪些。

这里着重介绍一下几个常用函数
add
add方法是想set集合中添加元素
clear
clear清空set集
copy
与str中的copy相似,只能进行浅拷贝,需要用到deepcopy
>>> a {1, 2, 3, 4, 5} >>> >>> a.add(7) >>> a {1, 2, 3, 4, 5, 7}
>>> a.clear()
>>> a
set()
>>> a = set((1,2,3,4,5))
>>> b = a.copy()
>>> b
{1, 2, 3, 4, 5}
different与difference_update
查找set1与set2中不一样的元素,前者返回不一样的值,后者对set1进行修改
>>> a = set((1,2,3,45)) >>> b = set((1,2,3,4)) >>> a.difference(b) {45} >>> a.difference_update(b) >>> b {1, 2, 3, 4} >>> a {45} >>>
intersection,intersection_update
与different、difference_update用法结果相似,与之不同intersection、intersection_update查找的内容为俩元素的相同值。
>>> a = {1,2,3,4}
>>> b
{1, 3, 5, 7}
>>> a.intersection(a)
{1, 2, 3, 4}
>>> a.intersection(b)
{1, 3}
>>> a.intersection_update(b)
>>> a
{1, 3}
update
用set2对set1进行更新,set1既有值不变,添加set2中的新值
>>> b {1, 2, 3, 4} >>> a {45} >>> a.update(b) >>> a {1, 2, 3, 4, 45}
pop,discard,remove
pop对目标集合中的元素随机删除且无参数
discard删除集合中的某个元素,参数为指定元素,若无该元素,则do nothing
remove删除集合中的某个元素,参数为指定元素,若无该元素,则raise a KeyError
>>> a = {1,2,3,4}
>>> a.pop()
1
>>> a
{2, 3, 4}
>>> a.discard(3)
>>> a
{2, 4}
>>> a.discard(3)
>>> a.remove(2)
>>> a
{4}
>>> a.remove(2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 2
union
将set1和set2的元素排重取合
>>> a = {1,2,3,4}
>>> b= {1,3,5,7}
>>> a.union(b)
{1, 2, 3, 4, 5, 7}
issubset、issuperset
判定set1是否包含(包含于)set2中
>>> set1 = {1,2,3}
>>> set2 = {1,2,3,4,5}
>>> set1.issubset(set2)
True
>>> set1.issuperset(set2)
False
>>> set2.issubset(set1)
False
>>> set2.issuperset(set1)
True