目录
为什么学习集合
因为之前学的列表、元组、字符串都支持重复 且有序
如果场景需要进行去重处理 那就不方便了
基本语法:
- # 定义集合字面量
- {元素,元素,....,元素}
- # 定义集合变量
- 变量名称 = {元素,元素,....,元素}
- # 定义空集合
- 变量名称 = set()
首先因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样是允许修改的
语法: 集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改 添加了新元素
语法: 集合.remove(元素),将指定元素 从集合内移除
结果:集合本身被修改 移除了元素
语法:集合.pop() 功能 从集合中随机取出一个元素
结果:会得到一个元素的结果 同时集合本身被修改 元素被移除
语法:集合.clear()功能 清空集合
结果 集合本身 被清空
语法:集合1.difference(集合2) , 功能:取出集合1 和集合2 的差集 (集合1有而集合2没有的)
结果:得到一个新集合, 集合1 和集合2 不变
消除2个集合的差集
语法:集合1.difference_update(集合2)
功能:对比集合1和集合2, 在集合1内 删除和集合2相同的元素
结果:集合1被修改,集合2不变
语法:集合1.union(集合2)
功能:将集合1和集合2组合成新的集合
结果:得到新集合,集合1和集合2不变
- """
- 演示数据容器集合的使用
- """
-
- # 定义集合
- my_set = {"it", "python", "it", "python", "it", "python", "it", "python", "it", "python"}
- my_set_empty = set() # 定义空集合
- print(f"my_set的内容是:{my_set},类型是:{type(my_set)}")
- print(f"my_set_empty的内容是:{my_set_empty},类型是:{type(my_set_empty)}")
- # 添加新元素
- my_set.add("111")
- print(f"my_set添加元素后的结果是:{my_set}")
- # 移除元素
- my_set.remove("it")
- print(f"my_set移除元素后的结果是:{my_set}")
- # 随机取出一个元素
- my_set = {"it", "python", "it", "python", "it", "python", "it", "python", "it", "python"}
- element = my_set.pop()
- print(f"集合被取出的元素是{element},取出后的集合是{my_set}")
- # 清空集合 ,clear
- my_set.clear()
- print(f"集合被清空啦,结果是:{my_set}")
-
-
- # 取2个集合的差集
- set1 = {1,2,3}
- set2 = {1,5,6}
- set3 = set1.difference(set2)
- print(f"取出差集后的结果是:{set3}")
- print(f"取出差集后set1结果是:{set1}")
- print(f"取出差集后的set2结果是:{set2}")
- # 消除两个集合的差集
- print("---消除两个集合的差集---")
- set1 = {1,2,3}
- set2 = {1,5,6}
- set1.difference_update(set2)
- print(set1)
- print(set2)
- # 2个集合合并为1个
- set1 = {1,2,3}
- set2 = {1,5,6}
- set3 = set1.union(set2)
- print(f"2集合合并结果:{set3}")
- print(f"合并后集合1:{set1 }")
- print(f"合并后集合2:{set2 }")
- print(f"合并后集合3:{set3 }")
- # 统计集合元素数量 len()
-
- set1 = {1,2,3,4,5}
- num = len(set1)
- print(f"集合内的元素数量有:{num}个")
- # 集合的遍历
- #集合不支持下标索引 不能用while循环
- #可以用for循环
- set1 = {1,2,3,4,5}
- for element in set1:
- print(f"集合的元素有;{element}")
- my_set的内容是:{'python', 'it'},类型是:<class 'set'>
- my_set_empty的内容是:set(),类型是:<class 'set'>
- my_set添加元素后的结果是:{'python', '111', 'it'}
- my_set移除元素后的结果是:{'python', '111'}
- 集合被取出的元素是python,取出后的集合是{'it'}
- 集合被清空啦,结果是:set()
- 取出差集后的结果是:{2, 3}
- 取出差集后set1结果是:{1, 2, 3}
- 取出差集后的set2结果是:{1, 5, 6}
- ---消除两个集合的差集---
- {2, 3}
- {1, 5, 6}
- 2集合合并结果:{1, 2, 3, 5, 6}
- 合并后集合1:{1, 2, 3}
- 合并后集合2:{1, 5, 6}
- 合并后集合3:{1, 2, 3, 5, 6}
- 集合内的元素数量有:5个
- 集合的元素有;1
- 集合的元素有;2
- 集合的元素有;3
- 集合的元素有;4
- 集合的元素有;5
-
- Process finished with exit code 0
