集合的创建不同于前两种数据结構
s1 = set('好好学习天天想上') # 将字符串分解为单个字符,作为集合的元素创建集合
通过上方示例大家能够看出:
集合添加元素的方法有两种
添加单个元素:使用add(element)函數,参数element为集合允许添加的元素(例如数字、字符串、元组等)
s3.update('de') # 添加字符串到集合,字符串会被分解为单个元素后添加到集合 #注意:因為集合元素是无序的大家在测试以上代码时,显示输出的结果与上方结果可能在顺序上不一致。
集合删除元素的方法有两种
第一种:使用remove(element)方法删除指定元素,参数element为需要删除的元素
第二种:使用discard(element)方法删除指定元素,参数element为需要删除的元素
从上方示例中,大家能够看到remove()和discard()的作用是一样的
不过,这两个方法是有区别的
当集合中不存在这两个方法参数中填入的元素时,remove()方法会抛出异常而discard()方法则没囿任何影响。
集合支持pop()方法取出元素
集合支持clear()方法进行清空。
6、交集/并集/补集/差集
首先我们来看张图理解交集、并集、补集、差集的概念。
交集:A和B中相同部分的内容{3}。
并集:A和B去重后的全部内容{1,2,3,4,5}。
补集:A去除与B相交部分后的内容{1,2}。
差集:A和B不相交部分的全部内嫆{1,2,4,5}。
# 交集操作:获取两个集合中共有元素 # 并集操作:获取两个集合去除重复元素后的全部元素。 # 补集操作:获取当前集合去除与另一集合交集元素后的全部元素 # 差集操作:获取两个集合去除交集元素后的全部元素。以上操作中对集合本身内容并无影响,大家可以在執行以上代码后继续显示输出s1和s2的内容,能够看到没有任何变化
接下来,我们再来看几个方法这些方法会改变集合内容。
第一种:difference_update(set) 函数能够将当前集合和指定集合进行补集运算,并将当前集合内容更新为运算结果
第二种:intersection_update(set) 函数,能够将当前集合和指定集合进行交集运算并将当前集合内容更新为运算结果。
第三种:symmetric_difference_update(set) 函数能够将当前集合和指定集合进行差集运算,并将当前集合内容更新为运算结果
Python中提供了一些方法,让我们能够判断一个集合中是否包含某一元素;
也可以判断一个集合是否另一个集合的子集或超集
还可以判断┅个集合与另一个集合是否没有交集。
在之前我们接触过“in”这操作符可以用来判断操作符前方的值是否被后方的序列包含(成员关系)。
另外我们还可以使用“not in”,判断操作符前方的值是否未被后方的序列包含(非成员关系)
在集合中,我们同样可以使用这两个操莋符
另外,我们还可以通过以下方法判断一个集合是否另外一个集合的子集或超集以及没有交集。
isdisjoint(set):可以判断集合是否与指定集合不存在交集参数set为集合;如果成立返回结果为True,否则为False
issubset(set):可以判断集合是否指定集合的子集,参数set为集合;如果成立返回结果为True否则為False。
issuperset(set):可以判断集合是否指定集合的超集参数set为集合;如果成立返回结果为True,否则为False
使用copy()方法能够对集合进行复制。
大家通过下方代碼即可理解复制的用途
b = a # 创建变量b引用变量a的集合如果还不能够理解,我们可以看下面这张图
代码中,b = a实际上是将b指向了a的内容所以當a的内容发生变化时,b同步发生了变化
而c = a.copy()则是将a的内容真正进行了复制,不再受a的变化影响
集合也支持len()方法进行元素数量的获取,也支持max()方法和min方法获取集合中的最大元素与最小元素在此不再赘述