Python学习---DAY17集合

发布时间:2026/9/30 7:08:28
Python学习---DAY17集合 可变集合set特点可存储字符/数字/元组/不可变集合等不能改变的内容且内容可以增删改查但内容存入后会变的无序且不重复a{1,9,18,4,5,5,6,a,c,6,(3,2,7)} print(a) #{1, a, 4, 5, 6, 9, 18, (3, 2, 7), c}数据类型为set定义时使用函数set(),接收返回值即可不可变集合frozenset特点与set相比不可以增删改通过frozenset()函数将集合改变为不可变集合并返回如a{1,9,18,4,5,a,c,6} bfrozenset(a) print(b) #frozenset({1, 4, 5, 6, 9, c, 18, a})集合必须储存不可变元素的原因集合定位需要使用元素的哈希值而不是下标所以若元素能被改变就不能被定位集合操作增add方法向集合中添加元素例a{1,9,18,4,5,5,6,a,c,6,(3,2,7)} print(a) a.add(64) print(a) #{1, c, a, 4, 5, 6, 9, 18, (3, 2, 7)} #{64, 1, c, a, 4, 5, 6, 9, 18, (3, 2, 7)}update方法向集合中批量添加元素例a{1,9,18,4,5,5,6,a,c,6,(3,2,7)} a.update([2,h,(3,2,8)]) print(a) #{1, c, 2, 4, 5, 6, a, 9, (3, 2, 8), h, 18, (3, 2, 7)}删remove方法删除指定元素该元素有多少删除多少若无则编译报错例a{1, a, 5, 5, 4, 6, c, 9, 18, (3, 2, 7)} a.remove(5) print(a) #{1, 4, a, 6, 9, c, 18, (3, 2, 7)}discard方法删除指定元素例a{1, a, 5, 5, 4, 6, c, 9, 18, (3, 2, 7)} a.discard((3,2,7)) print(a) #{1, 4, 5, 6, 9, a, 18, c}pop方法随机去除一个元素并返回下标clear方法清除所有元素例a{1, a, 5, 5, 4, 6, c, 9, 18, (3, 2, 7)} a.pop() print(a , a.pop()) a.clear() print(a) #{5, 6, 9, c, 18, a, (3, 2, 7)} 4 #set()改集合无特定修改方法所以通过增删来实现改查集合无特定查方法只能通过成员运算符实现其余方法difference方法查找AB集合差异并返回差异集合例a{5, 6, 9, c, 18, a, (3, 2, 7)} b{1,2,3,4,5,5} ca.difference(b) print(c) #{a, 6, 9, 18, (3, 2, 7), c}difference_update方法将A中的B集合中的元素删除例a{5, 6, 9, c, 18, a, (3, 2, 7)} b{1,2,3,18,c,5} a.difference_update(b) print(a) #{6, (3, 2, 7), a, 9}union方法将两个集合合并返回一个新集合例a{1,23,4,5,6,(3,4,5),hello} b{3.14, world} ca.union(b) print(c) #{1, 3.14, 4, 5, 6, hello, (3, 4, 5), 23, world}issubset方法判断B是否为A的子集issuperset方法判断B是否为A的超集isdisjoint方法判断AB是否存在交集以上三个方法均返回布尔值集合运算并集本质为ab两个集合相或例如a{1,23,4,5,6,(3,4,5),hello} b{3.14, world,1,23,4,5} ca|b print(c) #{1, 3.14, 4, 5, 6, world, hello, (3, 4, 5), 23}交集本质为两集合相与例如a{1,23,4,5,6,(3,4,5),hello} b{3.14, world,1,23,4,5} cab print(c) #{1, 4, 5, 23}差集用于获取属于被减集合而不属于减集合的集合a{1,23,4,5,6,(3,4,5),hello} b{3.14, world,1,23,4,5} ca - b print(c) #{(3, 4, 5), 6, hello}对称差集本质为两集合异或a{1,23,4,5,6,(3,4,5),hello} b{3.14, world,1,23,4,5} ca ^ b print(c) #{3.14, 6, world, (3, 4, 5), hello}集合遍历可通过for循环来直接遍历a{3.14, 6, world, (3, 4, 5), hello} for icnt in a: print(icnt) 3.14 (3, 4, 5) hello 6 world

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询