# encoding=utf-8 """ 三、集合操作 1、集合(set) 集合是无序、可变、元素不可重复的序列 集合底层实现是字典,只有字典的键对象,不可重复且唯一 (1)集合是盛放多个数据的一种类型,是基础数据类型之一 (2)用于存储一组无序的,唯一的、不重复的,不可修改类型的数据 2、创建 (1)创建空集合:集合名=set() (2)创建非空集合:集合名={元素1,元素2...} | 集合名=set(元素1,元素2...) 3、特点 (1)集合是无序的 (2)集合中的元素是不重复的,唯一的 (3)集合中存储的数据必须是不可变的数据类型 (4)集合是可变的数据类型 4、增加操作 (1)集合名.add(数据):添加不可变类型数据,若添加可变类型数据会报错 (2)集合名.update(可迭代数据):将可迭代对象中和集合中不重复的元素添加到集合中 5、删除操作 (1)集合名.pop():将集合中的元素随机删除,返回删除的值 (2)集合名.remove(元素):删除指定的元素,元素不存在会报错 (3)集合名.discard(元素):删除指定的元素,元素不存在会报错 (4)集合名.clear():将集合清空,剩余空集合 (5)del 集合名:删除整个集合变量 6、应用场景:去重 (1)元素在集合中只能存储一次,可以用来把重复项从其他数据类型中过滤掉,只要把其他类型转换为一个集合(set),再转换回来即可去重 (2)在处理较大的数据集合的时候,两个集合的交集包含了两个领域中共有的对象,并集包含了两个集合中的所有项目 7、数学计算 (1)集合1.difference(集合2):获取两个集合的差集 == 集合1-集合2-->第一个集合有,第二个集合没有 (2)集合1.difference_update(集合2):获取两个集合的差集并将结果更新到前面集合中 == 集合1-=集合2 (3)集合1.symmetric_difference(集合2):获取两个集合共同的差集/反交集 == 集合1^集合2-->取非公共部分 (4)集合1.symmetric_difference_update(集合2):获取两个集合共同的差集并更新到前面集合中 == 集合1^=集合2 (5)集合1.isdisjoint(集合2):判断两个集合是否没有交集 (6)集合1.intersection(集合2):获取两个集合的交集 == 集合1&集合2-->取公共部分 (7)集合1.intersection_update(集合2):获取两个集合的交集并将结果更新到前面集合中 == 集合1&集合2 (8)集合1.union(集合2):获取两个集合的并集 == 集合1|集合2-->取所有部分,不包括重复数据 (9)集合1.update(集合2):获取两个集合的并集,并将数据更新到前面集合中 == 集合1|=集合2 (10)集合1.issubset(集合2):子集-判断前面集合中的数据是不是包含在后面集合中 == 集合1<集合2-->判断集合是不是另一集合的子集 (11)集合1.issuperset(集合2):超集-判断后面集合中的数据是不是包含在前面集合中 == 集合1>集合2 """ set1=set() print("声明空集合:",set1) # 普通集合 set2 = {1,2,3,4,5,6,7,8,9,1,2,3,1,2,3,1,2,3} print("集合是可变类型数据,可以存放不可重复的、无序的、不可变类型数据的多个数据") set3 = set(["a","b","c","d","e"]) print("声明非空集合:",set3) print("--------单个集合增加数据--------") set4 = set3.copy() print("copy()复制集合:",set4) # 增加操作 st1 = {"1","2","3","3","4","5","6"} # add()添加不可变类型数据,若添加可变类型数据会报错 print("add()添加不可变类型数据,若添加可变类型数据会报错") st1.add(1) print("添加数据:",st1) # update将后面的集合添加到前面集合中 print("update将后面的集合添加到前面集合中") st2 = {"9","8","7"} st1.update(st2) print("添加集合到前面集合中:",st1) # 删除操作 print("--------单个集合删除数据--------") # pop()将集合中的元素随机删除,返回删除的值 print("pop()将集合中的元素随机删除,返回删除的值") print("随机删除元素:",st1.pop(),"删除元素后的结合:",st1) # remove(元素)删除指定的元素,元素不存在会报错 print("remove(object)删除指定的元素,元素不存在会报错") st1.remove("3") print("删除指定的元素3",st1) # st1.remove("X") # print("remove指定删除一个数据(不存在):",st1) # discard(元素)删除指定的元素,元素不存在会报错 print("discard(object)删除指定的元素,元素不存在不会报错") st1.discard("3") print("删除指定的元素3:",st1) # clear()将集合清空,剩余空集合 st1.clear() print("清空集合:",st1) print("遍历所有的集合:",end=" ") for i in st1: print(i,end=" ") print("~~~~~~~~~~~~~~~~获取差集~~~~~~~~~~~~~~~") s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} print("集合s1:",s1," | 集合s2:",s2) print("difference:获取两个集合的差集",s1.difference(s2)) print("s1-s2:获取两个集合的差集",s1-s2) print("~~~~~~~~~~~~~~更新差集~~~~~~~~~~~~~~~~") s1.difference_update(s2) print("difference_update获取两个集合的差集并将结果更新到前面集合中",s1) s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} s1-=s2 print("s1-=s2获取两个集合的差集并将结果更新到前面集合中",s1) print("~~~~~~~~~~~~~~获取共同差集~~~~~~~~~~~~~") s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} print("symmetric_difference获取两个集合共同的差集",s1.symmetric_difference(s2)) print("s1^s2获取两个集合共同的差集",s1^s2) print("~~~~~~~~~~~~~更新共同差集~~~~~~~~~~~~~") s1.symmetric_difference_update(s2) print("symmetric_difference_update获取两个集合共同的差集并更新到前面集合中",s1) s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} s1^=s2 print("s1^=s2获取两个集合共同的差集并更新到前面集合中",s1) print("~~~~~~~~~~~~~~~~判断交集~~~~~~~~~~~~~~~") s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} print("isdisjoint判断两个集合是否没有交集",s1.isdisjoint(s2)) print("~~~~~~~~~~~~~~~~获取交集~~~~~~~~~~~~~~~") print("intersection获取两个集合的交集",s1.intersection(s2)) print("s1&s2获取两个集合的交集",s1&s2) print("~~~~~~~~~~~~~~~~更新交集~~~~~~~~~~~~~~~") s1.intersection_update(s2) print("intersection_update获取两个集合的交集并将结果更新到前面集合中",s1) s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} s1&=s2 print("s1&=s2获取两个集合的交集并将结果更新到前面集合中",s1) print("~~~~~~~~~~~~~~~~获取并集~~~~~~~~~~~~~~~") s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} print("union获取两个集合的并集",s1.union(s2)) print("s1|s2获取两个集合的并集",s1|s2) print("~~~~~~~~~~~~~~~~更新并集~~~~~~~~~~~~~~~") s1.update(s2) print("update获取两个集合的并集,并将数据更新到前面集合中",s1) s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} s1|=s2 print("s1|=s2获取两个集合的并集,并将数据更新到前面集合中",s1) print("~~~~~~~~~~~~~~~~后包含前~~~~~~~~~~~~~~~") s1 = {1,2,3,4,5,6} s2 = {4,5,6,7,8,9} print("issubset判断前面集合中的数据是不是包含在后面集合中",s1.issubset(s2)) print("s1<s2判断前面集合中的数据是不是包含在后面集合中",s1<s2) print("~~~~~~~~~~~~~~~~前包含后~~~~~~~~~~~~~~~") print("issuperset判断后面集合中的数据是不是包含在前面集合中",s1.issuperset(s2)) print("s1>s2判断后面集合中的数据是不是包含在前面集合中",s1>s2) # del 删除集合变量 del st1
py语法基础014_集合操作介绍
最新推荐文章于 2023-02-06 16:32:34 发布