1.集合的定义
v1 = {1,2,99,18}
v2 = {"武沛齐","Alex","老妖","Egon"}
v3 = {1,True,"world",(11,22,33)}
集合与字典虽然都是用{}括号,但字典内部是键值对,而集合内部直接是值。
2.常用方法
- add 添加元素
data = {"刘嘉玲", '关之琳', "王祖贤"}
data.add("郑裕玲")
print(data)
data = set()
data.add("周杰伦")
data.add("林俊杰")
print(data)
- discard 删除元素
data = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟", "李若彤"}
data.discard("关之琳")
print(data)
- update 批量添加
update() 方法通过添加另一个集合中的项目来更新当前集合。
如果两个集合中都存在一个项目,则更新后的集合中将仅出现一次该项目。
把集合 y 中的项目插入集合 x:
x = {"apple", "banana", "cherry"}
y = {"google", "microsoft", "apple"}
x.update(y)
print(x)
- intersection 交集
s1 = {"刘能", "赵四", "⽪⻓⼭"}
s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
s3 = s1 & s2 # 方式一:取两个集合的交集
s4 = s1.intersection(s2)) # 方式二:取两个集合的交集
print(s3,s4)
- union 并集
s1 = {"刘能", "赵四", "⽪⻓⼭"}
s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
s3 = s1 | s2 # 方式一:取两个集合的并集
s4 = s1.union(s2)) # 方式二:取两个集合的并集
print(s3,s4)
- difference 差集
s1 = {"刘能", "赵四", "⽪⻓⼭"}
s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
s3 = s1 - s2 # 方式一:差集,s1中有且s2中没有的值
s4 = s1.difference(s2) # 方式二:差集,s1中有且s2中没有的值
print(s3,s4)
s5 = s2 - s1 # 方式一:差集,s2中有且s1中没有的值
s6 = s2.difference(s1) # 方式一:差集,s2中有且s1中没有的值
print(s5,s6)
symmetric_difference 返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。
x = {"apple", "banana", "cherry"}
y = {"google", "runoob", "apple"}
z = x.symmetric_difference(y)
print(z)
3.转换
其他类型如果想要转换为集合类型,可以通过set进行转换,并且如果数据有重复自动剔除。
提示:int/list/tuple/dict都可以转换为集合。
v1 = [11,22,33,11,3,99,22]
v2 = set(v1)
print(v2) # {11,22,33,3,99}
v1 = "武沛齐"
v2 = set(v1)
print(v2) # {"武","沛","齐"}
v1 = (11,22,3,11)
v2 = set(v1)
print(v2) # {11,22,3}
v1 = {"age":12, "status":True,"name":"武沛齐"}
print( set(v1.keys()) ) # 输出:{'status', 'name', 'age'}
print( set(v1.values()) ) # 输出:{'武沛齐', True, 12}
print( set(v1.items()) ) # 输出:{('age', 12), ('status', True), ('name', '武沛齐')}
4.其他
索引/切片/步长
集合中没有提供 索引/切片/步长 这些功能,因为他无需,所以无法使用索引操作。
获取集合长度
v = {"刘能", "赵四", "尼古拉斯")
data = len(v)
print(data)
for循环
v = {"刘能", "赵四", "尼古拉斯")
for item in v:
print(item)