集合
-
集合最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序
-
语法
-
方法
-
代码案例
# 定义集合 my_set = {"传智教育", "黑马程序员", "itheima", "传智教育", "黑马程序员", "itheima", "传智教育", "黑马程序员", "itheima"} 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("Python") my_set.add("传智教育") # print(f"my_set添加元素后结果是:{my_set}") # 移除元素 my_set.remove("黑马程序员") print(f"my_set移除黑马程序员后,结果是:{my_set}") # 随机取出一个元素 my_set = {"传智教育", "黑马程序员", "itheima"} 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}") # 消除2个集合的差集 set1 = {1, 2, 3} set2 = {1, 5, 6} set1.difference_update(set2) print(f"消除差集后,集合1结果:{set1}") print(f"消除差集后,集合2结果:{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}") # 统计集合元素数量len() set1 = {1, 2, 3, 4, 5, 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}")
- 特点
可以容纳多个数据 可以容纳不同类型的数据(混装) 数据是无序存储的(不支持下标索引) 不允许重复数据存在 可以修改(增加或删除元素等) 支持for循环
- 案例1
my_list = ['黑马程序员', '传智播客', '黑马程序员', '传智播客', 'itheima', 'itcast', 'itheima', 'itcast', 'best'] # 定义一个空集合 my_set = set() # 通过for循环遍历列表 for element in my_list: # 在for循环中将列表的元素添加至集合 my_set.add(element) # 最终得到元素去重后的集合对象,并打印输出 print(f"列表的内容是:{my_list}") print(f"通过for循环后,得到的集合对象是:{my_set}")
- 案例2
# 求并集、交集、差集、对称差集 set1 = {1, 2, 3, 4, 5} set2 = {4, 5, 6, 7, 8} print(set(set1) | set(set2)) print(set(set1) & set(set2)) print(set(set1) - set(set2)) print(set(set2) - set(set1)) print(set(set2) ^ set(set1))
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术