Python基础--集合创建、添加删除元素以及集合的交集、并集和差集运算

    科技2022-07-12  125

    # 集合 Python除了List、Tuple、Dict等常用数据类型外,还有一种数据类型叫做集合(set), # 集合的最大特点是:集合里边的元素是不可重复的并且集合内的元素还是无序的,所以一般情况下集合常用的两个场景是: # 1.去重(如:列表去重);2.关系测试(如:取交集、取并集、取差集等) # 创建集合 注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。 # 第一种方法 直接使用{}创建 不推荐 numberset = {1, 2, 5, 3, 3, 4, 5} # 直接使用{}创建元组 # 如果输入了重复的元素,python会自动只保留一个 threeset = {"醉里挑灯看剑", "梦回吹角连营", "八百里分麾下炙", "五十弦翻塞外声", "沙场秋点兵"} fourset = {"Python", 28, ("人生苦短", "我要用python"), ("爬虫", "云计算", "大数据")} themeset = {"优雅", "大方", "美丽"} print(numberset, "\n", threeset, "\n", fourset, "\n", themeset) # python中的set是无序的,所以每次输出时元素的排序可能不同 # 第二种方法 使用set()函数创建 将列表、元组和其他可以迭代的对象转换成集合 # 语法:setname = set(iteratiom) iteratiom:要转换为集合的可迭代对象,包含列表、元组、range对象等,也可以是字符串(返回的集合将是包含全部不重复字符的集合) set1 = set([1, 2, 3, 4]) # 创建一个字符集合 注意:从输出结果中我们会看到l只出现了一次 set2 = set("Hello,World!") set3 = set(("人生苦短", "我要用python")) set4 = set(range(2, 5)) set5 = set() # 空集合 print(set1, set2, set3, set4, set5) # 向集合中添加和删除元素 # 添加元素 add()方法 set.add(element) element:表示要添加的元素内容(只能使用字符串、数字和布尔类型的数据,不可以使用列表、元组等迭代对象) set6 = {"醉里挑灯看剑", "梦回吹角连营", "八百里分麾下炙", "五十弦翻塞外声", "沙场秋点兵"} set6.add("这是刘禹锡的诗句") # add()方法 print(set6) # 还有copy()方法 直接复制集合 set7 = set6.copy() print(set7) # 删除集合元素 四种方法:del pop() remove() clear() set8 = {"醉里挑灯看剑", "梦回吹角连营", "八百里分麾下炙", "五十弦翻塞外声", "沙场秋点兵"} set8.remove("醉里挑灯看剑") # s.remove(x) 删除指定元素,将元素x从集合s中移除,如果元素不存在,则会发生错误。 print("remove()方法后:", set8) obj1 = set8.pop() # 删除一个元素 print("移除的元素是:", obj1, "pop()方法后:", set8) set8.clear() # clear()方法清空集合 print("clear()方法后:", set8) del set8 # del语句会删除整个集合 # print("clear()方法后:", set8) # 计算集合元素个数 语法格式如下:len(s) 计算集合 s 元素个数。 set9 = set(("醉里挑灯看剑", "梦回吹角连营", "八百里分麾下炙", "五十弦翻塞外声", "沙场秋点兵")) print("集合元素的是个数:", len(set9)) # 判断元素是否在集合中存在 语法格式如下:x in s 判断元素x是否在集合s中,存在返回 True,不存在返回 False。 print("八百里分麾下炙" in set9) print("小巧你在哪" in set9) # 集合的交集、并集和差集运算 set1 = set([1, 2, 5, 4, 3, 6]) set2 = set([3, 4, 5, 6, 7, 8]) # 取交集 & set3 = set1 & set2 set3 = set1.intersection(set2) # 取交集,intersection()与 & 效果相同 print("set1和set2的交集(set1 & srt2)为:", set3) # 取并集 | set4 = set1 | set2 # set4 = set1.union(set2) #取并集,union()与 | 效果相同 print("set1和set2的并集(set1 | srt2)为:", set4) # 取差集 set5 = set1 - set2 # set5 = set1.difference(set2) #取差集 ,difference()与 - 效果相同 print("set1与set2的差集(set1 - srt2)为:", set5) set6 = set2 - set1 # set6 = set2.difference(set1) print("set2与set1的差集为:", set6) # 对称差集 即去掉两个集合的共同的部分 set7 = set1 ^ set2 set7 = set1.symmetric_difference(set2) # 对称差集, symmetric_difference()与 ^ 效果相同 print("set1 ^ set2(去掉两个集合的共同的部分)=", set7) # 判断是否是set1是否是set2的子集 flag1 = set1.issubset(set2) print("判断是否是set1是否是set2的子集:", flag1) # 判断是否是set1是否是set2的父集 flag2 = set1.issuperset(set2) print("判断是否是set1是否是set2的父集:", flag2)

     

    Processed: 0.009, SQL: 8