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)
原文地址:https://www.cnblogs.com/Agoni-7/p/11032438.html
时间: 2024-08-12 03:23:37