标签:并集 添加 abc 转换 常用 区分 操作 value iss
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
set集合是python的一个基本数据类型. 一般不是很常用. set中的元素是不重复的.无序的.里面的元素必须是可hash的(int, str, tuple,bool), 我们可以这样来记. set就是dict类型的数据但是不保存value, 只保存key. set也用{}表示
注意: set集合中的元素必须是可hash的, 但是set本身是不可hash得.set是可变的.
set1 = {‘1‘,‘alex‘,2,True,[1,2,3]} # 报错 set2 = {‘1‘,‘alex‘,2,True,{1:2}} # 报错 set3 = {‘1‘,‘alex‘,2,True,(1,2,[2,3,4])} # 报错
set中的元素是不重复的, 且无序的.
s = {"周杰伦", "周杰伦", "周星星"} print(s) 结果: {‘周星星‘, ‘周杰伦‘}
使用这个特性可以使set来去掉重复
# 给list去重复 lst = [45, 5, "哈哈", 45, ‘哈哈‘, 50] lst = list(set(lst)) # 把list转换成set, 然后再转换回list print(lst)
se.add(‘内容‘) # 重复的内容不会被添加到set集合中 print(se) se.update(‘可迭代对象‘)# 迭代更新 se.update(["沾满","李儒",""李儒])# 迭代更新 print(se)
se = {6,2,3,4} se.remove(‘内容‘) #直接删除内容 print(se) se.pop() #默认删除第一个 print(se) del se #删除整个集合 se.clear() #清空set集合,需要注意的set集合如果是空的,打印粗来是set()因为要和dict区分的
# 集合就是先删后增 s = {"刘嘉玲", ‘关之琳‘, "王祖贤","张曼?", "李若彤"} # 把刘嘉玲改成赵本 s.remove("刘嘉玲") s.add("赵本") print(s)
#set 是一个科迭代对象,所以可以进行for循环 for el in s: print(el)
# 交集 &
print(s1 & s2)
print(s1.intersection(s2))
# 并集 |
print(s1|s2)
print(s1.union(s2))
# 差集 -
print(s1 - s2)
print(s1.difference())
# 反差集 ^
print(s1 ^ s2)
print(s1.symmetric_difference(s2))
# 子集 <
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = {1, 2, 3, 4}
s1 < s2 # False
s1 < s3 # True
print(s1<s2)
print(s1.issubset(s2))
# 超级 >
类似于子集,前后颠倒位置即可
print(s1 > s2)
print(s1.issuperset(s2))
# 冻结集合 : 把可变的集合变成了不可变得集合 不常用
set集合本身是可以发生改变的. 是不可hash的. 我们可以使用frozenset来保存数据. frozenset是不可变的. 也就是一个可哈希的数据类型
s = frozenset(["赵本?", "刘能", "", "?跪"]) dic = {s:‘123‘} # 可以正常使?了 print(dic)
固定集合和集合的区别就是固定集合是不可变的,而集合是可变的,其他的基本都一样
由于固定集合是不可变的,所以没有集合里边的修改操作,一笔带过
fz = frozenset()
fz = frozenset(‘ABCAB‘) # frozenset({‘C‘, ‘B‘, ‘A‘})
fz = frozenset([1, 2, 3, 4, 5])
标签:并集 添加 abc 转换 常用 区分 操作 value iss
原文地址:https://www.cnblogs.com/yanranran/p/10229017.html