Python容器 - Set
常用操作

set的元素不能重复
set1 = {1, 2, 3}
print(type(set1)) # <class 'set'>
print(len(set1)) # 3
# 添加
set1.add(4)
print(len(set1)) # 4
# 判断是否在集合中
print(1 in set1) # True
print(5 in set1) # False
# 删除
set1.remove(4)
# set1.remove(5) # 如果元素不存在, 会抛异常
set1.discard(5) # 元素不存在, 不会抛异常
set1.pop() # 随机删除一个元素
print(set1)
# 添加另一个集合
set2 = set([1, 2, 3, 4, 5, 6])
set1.update(set2)
print(set1)
# 遍历
for e in set1:
print(e)
交集
set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
set3 = {3}
# 交集, 生成新的Set
set5 = set1.intersection(set2)
print(set5) # {2, 3}
# 交集, 操作符重载方式
set5 = set1 & set2
print(set5) # {2, 3}
# 并集, 生成新的Set
set5 = set1.intersection(set3)
print(set5) # {3}
# 交集, 直接修改set1
set1.intersection_update(set2)
print(set1) # {2, 3}
# 交集, 直接修改set1
set1.intersection_update(set3)
print(set1) # {3}
并集,差集
set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
set3 = {3}
# 并集, 生成新的Set
set5 = set1.union(set2)
print(set5) # {1, 2, 3, 4, 5}
# 并集, 操作符重载方式
set5 = set1 | set2
print(set5) # {1, 2, 3, 4, 5}
# 差集, 生成新的Set
set5 = set1.difference(set2)
print(set5) # {1}
# 差集, 操作符重载方式
set5 = set1 - set2
print(set5) # {1}
# 差集, 直接修改set1方式
set1.difference_update(set2)
print(set1) # {1}
集合间的不同元素
set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
set3 = {3}
# 所有不同元素, 生成新Set
set5 = set1.symmetric_difference(set2)
print(set5) # {1, 4, 5}
# 所有不同元素, 操作符重载方式
set5 = set1 ^ set2
print(set5) # {1, 4, 5}
# 所有不同元素, 直接修改set1
set1.symmetric_difference_update(set2)
print(set1) # {1, 4, 5}
判断
set1 = {1, 2, 3}
set2 = {2, 3, 4, 5}
set3 = {3}
# 是否子集
print(set3.issubset(set1)) # True
print(set2.issubset(set1)) # False
# 是否超集
print(set3.issuperset(set1)) # False
print(set2.issuperset(set1)) # False
print(set1.issuperset(set3)) # True
# 是否不包含有相同元素
print(set1.isdisjoint(set2)) # False
print(set2.isdisjoint(set3)) # False
print(set1.isdisjoint({4, 5, 6})) # True

浙公网安备 33010602011771号