目录
为什么学习集合
因为之前学的列表、元组、字符串都支持重复 且有序
如果场景需要进行去重处理 那就不方便了
集合的定义
基本语法:
# 定义集合字面量
{元素,元素,....,元素}
# 定义集合变量
变量名称 = {元素,元素,....,元素}
# 定义空集合
变量名称 = set()
集合的常用操作---修改
首先因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样是允许修改的
语法: 集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改 添加了新元素
移除元素
语法: 集合.remove(元素),将指定元素 从集合内移除
结果:集合本身被修改 移除了元素
从集合中随机取出元素
语法:集合.pop() 功能 从集合中随机取出一个元素
结果:会得到一个元素的结果 同时集合本身被修改 元素被移除
清空集合
语法:集合.clear()功能 清空集合
结果 集合本身 被清空
取2个集合的差集
语法:集合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不变
for循环
"""
演示数据容器集合的使用
"""
# 定义集合
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