电商网站架构,app开发小程序,哪个淘宝客网站最好,营销推广计划怎么写一、集合概念 集合#xff08;set#xff09;是一个无序的不重复元素序列。
二、集合的创建 可以使用大括号{}或者set方法创建集合#xff0c;但是创建一个空集合必须使用set而不能使用空{},因为在python中空{}用于创建空字典。
1、set函数 set()函数创建一个无序不重复元…一、集合概念 集合set是一个无序的不重复元素序列。
二、集合的创建 可以使用大括号{}或者set方法创建集合但是创建一个空集合必须使用set而不能使用空{},因为在python中空{}用于创建空字典。
1、set函数 set()函数创建一个无序不重复元素集返回值为新的集合对象。示例如下
list_1 [h,l,e,l,o]
set_1 set(list_1)
print(set_1) #输出为{o, h, e, l}
三、 集合运算规则
1、交集 set_1 set_2:返回一个新的集合对象包括同时在集合set_1和set_2中的共同元素示例如下
list_1 [h,l,e,l,o]
list_2 [w,o,r,l,d]
set_1 set(list_1)
set_2 set(list_2)
print(set_1 set_2) #输出为{o, l} 交集方法为set.intersection,示例如下
set1 {1,2,3,4,5}
set2 {2,3,4,6,7,8}
print(set1.intersection(set2))#输出为{2, 3, 4}在set1中存在又在set2中存在的元素
2、 并集 set_1 | set_2:返回一个新的集合对象包括集合set_1和set_2中的所有元素示例如下
list_1 [h,l,e,l,o]
list_2 [w,o,r,l,d]
set_1 set(list_1)
set_2 set(list_2)
print(set_1 | set_2) #输出为{l, w, o, e, r, h, d} 并集方法为set.union,示例如下
set1 {1,2,3,4,5}
set2 {2,3,4,6,7,8}
print(set1.union(set2))#输出为{1, 2, 3, 4, 5, 6, 7, 8}
3、 差集 set_1 - set_2返回一个新的集合对象包括在集合set_1中但不在set_2中的元素示例如下
list_1 [h,l,e,l,o]
list_2 [w,o,r,l,d]
set_1 set(list_1)
set_2 set(list_2)
print(set_1 - set_2) #输出为{h, e} 差集方法为set.difference,示例如下
set1 {1,2,3,4,5}
set2 {2,3,4,6,7,8}
print(set1.difference(set2))#输出为{1, 5} set1去除set2中存在的元素
4、 补集 set_1^set_2:返回一个新的集合对象包括集合set_1和set_2的非共同元素即异或运算示例如下
list_1 [h,l,e,l,o]
list_2 [w,o,r,l,d]
set_3 {l}
set_1 set(list_1)
set_2 set(list_2)print(set_1 ^ set_2) #输出为{w, e, r, h, d}
print(set_1 ^ set_2 ^ set_3) #输出为{e, l, d, w, r, h} ,注意异或运算三者异或时三个共有的元素也为真 补集方法为 set.symmetric_difference,示例如下
set1 {1,2,3,4,5}
set2 {2,3,4,6,7,8}
print(set1.symmetric_difference(set2))#输出为{1, 5, 6, 7, 8}set1与set2的异或运算
5、 集合的比较
1 集合的比较方法
set.issubset判断一个集合是不是另一个集合的子集是则返回True,否则返回False.
set.superset判断一个集合是不是另一个集合的超集是则返回True否则返回False
示例如下
set_1 {1,2,3,4,5}
set_2 {1,2,3}print(set_1.issuperset(set_2))#输出为True set_1是set_2的超集
print(set_2.issubset(set_1))#输出为False set_2是set_1的子集
2集合的比较操作符
:真正意义上的子集在集合A是集合B的子集的同时A不等于B
:子集或相等集合A是集合B的子集或相等
相等集合A和集合B中的元素相等但是两个集合并不必须相等
:超集或相等集合A是集合B的超集或相等
:超集集合A是集合B的超集
示例如下
set_1 {1,2,3,4,5}
set_2 {1,2,3}
set_3 {1,2,3,3}print(set_1 set_2) #输出为Trueset_1是set_2的超集
print(set_1 set_1) #输出为True
print(set_2 set_3) #输出为True
print(set_2 set_2) #输出为True
print(set_2 set_1) #输出为True,set_2是set_1的子集
四、集合的基本方法
1、元素添加 1set.add方法 向集合添加元素但只能添加可哈希数据类型即不可变数据类型数值、元组、字符串。示例如下
set_1 {h}
set_1.add(e)
print(set_1) #输出为{e, h}
注意add方法单次只能添加一个元素否则会报错TypeError: add() takes exactly one argument (2 given 2set.update 向集合添加元素但只能添加可迭代的数据类型即字符串、元组、列表、字典。update方法会将元素进行拆分再添加当参数为字典时会将字典中的健作为集合元素添加进集合忽略值。示例如下
set_1 {h}set_1.update((1,2),(2,3),{8:1,9:3},(l,8))
print(set_1) #输出为{l, 1, 2, 3, h, 8, 8, 9} 补充add方法与update方法的区别
1参数不同add方法只可以添加不可变数据类型如数字、元组、字符串否则会报错TypeError: unhashable type: set并且一次智能添加一个元素而update方法只能添加可迭代元素如字符串、列表、元组、字典若添加数字会报错object is not iterable一次可以添加多个元素。
2返回结果不同add方法会把元素整体性的添加进去即元素为元组时加入到集合中也作为元组存在update方法会把元素查分再添加进去当参数为字典时会将字典中的健作为集合元素添加进集合忽略值。
2、元素删除 1set.remove 从集合中移除元素如果元素在集合中不存在则会引发KeyError.示例如下
set_1 {h,e}
set_1.remove(h)
print(set_1)#输出为{e}
set_1.remove(x)#输出为KeyError: x
2set.discard方法 从集合中移除元素。如果元素不存在不报错该方法无返回值。示例如下
set_1 {h,e}set_1.discard(h)print(set_1)#输出为{e} 3set.pop方法 从集合中随机移除并返回该元素如果集合为空则会引发KeyError。Pop方法会对集合进行无序的排列然后将这个无需排列集合的左边第一个元素进行删除。示例如下
set_1 {h,e,l,2}set_1.pop()
print(set_1)#输出为{l, 2, h}set_1.pop()
print(set_1)#输出为{2, h}set_1.pop()
print(set_1)#输出为{h}set_1.pop()
print(set_1)#输出为set()set_1.pop()
print(set_1)#输出为KeyError: pop from an empty set
4set.clear方法 移除集合中所有元素。示例如下
set_1 {h,e,l,2}set_1.clear();
print(set_1)#输出为set()
3、 Set.isdisjoint方法
用于判断两个集合是否包含相同的元素如果没有则返回True否则返回False。示例如下
set_1 {1,2,3}
set_2 {2,3,4}
set_3 {4,5,6}print(set_1.isdisjoint(set_2))#输出为False
print(set_1.isdisjoint(set_3))#输出为True