详解python的集合set的函数
作者:April.? 时间:2023-02-06 04:16:42
s={ x1,x2,x3.....};
集合有自动去重的功能,而且可以进行交并补运算,而且集合是无序的,每次打印的结果不一样,故不可以用元素下标进行取值。因无法取值,故无法对特定的值进行修改。但是可以进行删除操作。
s=set();表示创建一个空的集合。注意:s={}表示创建一个空的字典。
常用
查询
x in s,s为一个集合,返回bool类型,判断x是否在集合s中。
增加
s.add(“x”);将“x”添加到集合s中。
删除
s.pop()
;随机删除集合s中的一个元素。
s.remove(“x”)
;删除集合s中的元素“x”,若无“x”则报错。
s.discard(“x”)
;删除集合s中的元素“x”,若无“x”不报错。
s.clear()
;将集合s清空,清空后s=set()。
交、并、补、对称差
交集
s=s1&s2
;s=s1.intersection(s2)
,s=set.intersection(s1,s2)
;得到集合s为集合s1和集合s2的交集。
并集
s=s1|s2
;s=s1.unoin(s2)
,s=set.union(s1,s2)
;得到集合s为集合s1和集合s2的并集。
补集
s=s1-s2
;s=s1.difference(s2)
,s=set.difference(s1,s2)
;得到集合s为在集合s1中但不在集合s2中的元素。
对称差
s=s1^s2
;s=s1.symmetric_difference(s2)
,s=set.symmetric_difference(s1,s2)
;得到集合s为仅在集合s1和仅在集合s2中的元素之和。
其他
s1=s.copy()
;将集合s的数据复制给集合s1,s和s1的地址不同,互不影响。(若用s1=s,则s1的数据与s相同且地址相同,对s做修改等于对s1做修改)
s.difference_update(s1,s2)
;将s-s1-s2的结果(补集)赋值给s。
s.intersection_update(s1,s2)
;将s&s1&s2的结果(交集)赋值给s。
s.isdisjoint(s1)
;如果s与s1的交集为空,则返回True,否则返回False。
s.issubset(s1)
;若s为s1的子集,则返回True。
s.issuperset(s1)
;若s1为s的子集,则返回True。
s.symmetric_difference_update(s1)
;括号内只能有一个参数,将s^s1的结果(对称差)赋值给s。
s.update(s1,s2)
;将s|s1|s2的结果(并集)赋值给s 。
来源:https://blog.csdn.net/Conding_Farmer/article/details/122511841