集合特点:
1、set也用{ }表示,无序(没有索引),去重复.
#自动去重 s = {"吕布","小乔","蔡文姬","关羽","吕布"} print(s) 结果: {'小乔', '关羽', '吕布', '蔡文姬'}
#将列表去重 lst = [1,2,3,2,4,5,6,4,2,5,6,6,4,5] s = set(lst) #把列表转换成集合,去重 lst = list(s) #把集合转换成列表 print(s) 结果: [1, 2, 3, 4, 5, 6]
2、里面的元素必须是可哈希的(int,str,tuple,bool)。
3、set就相当于不存value的字典,只保存key。
4、本身是可变的数据类型,有增删改查操作。
1) 增加 #add() update() 迭代更新
s = {"关羽", '赵云', "刘备"} s.add("张飞") print(s) s.add("张飞") # 重复的内容不会被添加到set集合中 print(s)
2) 删除 # pop() remove() clear( )
s = {"关羽", '赵云', "刘备"} item = s.pop() # 随机弹出⼀个. print(s) print(item) s.remove("赵云") # 直接删除元素 # s.remove("张飞") # 不存在这个元素. 删除会报错 print(s) s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和dict区分的. print(s) # set()
3) 改 #先删除后添加
# set集合中的数据没有索引. 也没有办法去定位⼀个元素. 所以没有办法进⾏直接修改. # 我们可以采⽤先删除后添加的⽅式来完成修改操作 s = {"刘备", '关羽', "张飞"} # 把刘备改成赵云 s.remove("刘备") s.add("赵云") print(s)
4) 查
# set是⼀个可迭代对象. 所以可以进⾏for循环 for el in s: print(el)
5、常用操作
交集 &(两个集合共有元素)
并集 |
差集 -
异或 ^
子集 (s1<s2)
超集 (s1>s2)
来源:https://www.cnblogs.com/jb-xiaotusi/p/11218614.html