ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Python学习---DAY17集合

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
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进