Python基础篇 -- 集合
Posted agoni-7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础篇 -- 集合相关的知识,希望对你有一定的参考价值。
set集合
set 中的元素是不重复的,无序的
里面的元素必须是可hash的,(int str tuple bool)
set 就是dict 类型的数据,但是不保存value 只保存 key set集合也用表示
set() 表示空集合
去重复
lst = [1,2,3,3,3,3,4,4,5,6] s = set(lst) lst = list(s) print(lst) # [1, 2, 3, 4, 5, 6]
集合的增删改查
set集合增删改查
增加
s = "刘嘉玲", '关之琳', "王祖贤" s.add("郑裕玲") print(s) s.add("郑裕玲") # 重复的内容不会被添加到set集合中 print(s) s = "刘嘉玲", '关之琳', "王祖贤" s.update("麻花藤") # 迭代更新 print(s) s.update(["张曼玉", "李若彤","李若彤"]) print(s)
删除
s = "刘嘉玲", '关之琳', "王祖贤","张曼玉", "李若彤" item = s.pop() # 随机弹出?个. print(s) print(item) s.remove("关之琳") # 直接删除元素 s.remove("马虎疼") # 不不存在这个元素. 删除会报错 print(s) s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和dict区分的. print(s) # set()
修改
# set集合中的数据没有索引. 也没有办法去定位一个元素. 所以没有办法进?直接修改. # 我们可以采用先删除后添加的方式来完成修改操作 s = "刘嘉玲", '关之琳', "王祖贤","张曼玉", "李若彤" # 把刘嘉玲改成赵本?山 s.remove("刘嘉玲") s.add("赵本山") print(s)
查询
set是?一个可迭代对象. 所以可以进行for循环 for el in s: print(el)
常?用操作
s1 = "刘能", "赵四", "皮长山" s2 = "刘科长", "冯乡?", "皮长山" # b交集 两个集合中的共有元素 print(s1 & s2) # '皮长山' print(s1.intersection(s2)) # '皮长山'
print(s1 - s2) #差集 print(s1 | s2) #并集 (合集) print(s1 & s2) #交集 print(s1 ^ s2) #对称差集 -- 反交集 print(s1 > s2) # 超集 -- 父集 print(s1 < s2) # 子集 冻结集合(可变 转换成 不可变) -- 更不常用 f_s = frozenset(1,2,3,4,5) dic = f_s:"1" print(dic)
以上是关于Python基础篇 -- 集合的主要内容,如果未能解决你的问题,请参考以下文章