Skip to content

集合操作


添加操作

  • add(ele) 向集合中添加一个元素,如果元素存在则不产生任何影响
s = {1, 2, 3}

s.add(4)
print(s)
s.add("Hello")
s.add("Hello")
print(s)

  • update(others) 更新集合,添加来自 others 中的所有元素, others 是一个可迭代对象,如果数据在集合中存在则不更新。
s = {1, 2, 3}

s.update((4,5,6))
print(s)
s.update([5,6,7])
print(s)
s.update({6,7,8,9})
print(s)

删除操作

  • pop() 从集合中移除并返回任意一个元素,如果集合为空,则抛出错误
s = {1, 2, 3}

print(s.pop())
print(s)
print(s.pop())
print(s)
print(s.pop())
print(s)
print(s.pop())

  • remove(elem) 从集合中移除元素 elem。 如果 elem 不存在于集合中则抛出错误。
s = {1, 2, 3}

print(s.remove(1))
print(s)
print(s.remove(3))
print(s)
print(s.remove(5))

  • discard(elem) 如果元素 elem 存在于集合中则将其移除,如果 elem 不存在,则什么也不做
s = {1, 2, 3}

s.discard(1)
print(s)
s.discard(3)
print(s)
s.discard(5)

  • clear() 清空集合
s = {1, 2, 3}
s.clear()
print(s)

集合数据操作

判断两个集合是否不相交

  • isdisjoint(other) 如果集合中没有与 other 共有的元素则返回 True。 当且仅当两个集合的交集为空集合时,两者为不相交集合。
s = {1, 2, 3}

print(s.isdisjoint({4, 5, 6}))
print(s.isdisjoint({3, 4, 5}))

判断集合是否是另一个集合的子集

  • issubset(other) 检测是否集合中的每个元素都在 other 之中。
s = {1, 2, 3}

# 判断 s 是否为 other参数的子集
print(s.issubset({1, 2, 3}))
print(s.issubset({1, 2, 3, 4}))
print(s.issubset({3, 4, 5}))
print("*" * 10)
# 也可以通过运算符 <= 直接判断
print(s <= {1, 2, 3})
print(s <= {1, 2, 3, 4})
print(s <= {3, 4, 5})
print("*" * 10)

# 判断是否为真子集
print(s < {1, 2, 3})
print(s < {1, 2, 3, 4})
print(s < {3, 4, 5})

判断集合是否是另一个集合的超集

  • issuperset(other) 检测是否 other 中的每个元素都在集合之中。
s = {1, 2, 3, 4}

# 判断 s 是否为 other参数的超集
print(s.issuperset({1, 2, 3}))
print(s.issuperset({1, 2, 3, 4}))
print(s.issuperset({3, 4, 5}))
print("*" * 10)
# 也可以通过运算符 >= 直接判断
print(s >= {1, 2, 3})
print(s >= {1, 2, 3, 4})
print(s >= {3, 4, 5})
print("*" * 10)

# 判断是否为真超集
print(s > {1, 2, 3})
print(s > {1, 2, 3, 4})
print(s > {3, 4, 5})

并集

  • union(*other) 返回一个新集合,其中包含来自原集合以及 others 指定的所有集合中的元素,other 可以指定多个集合。
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = {5, 6, 7, 8}
print(s1.union(s2))
print(s1.union(s2,s3))
# 也可以使用 | 进行集合并集运算
print(s1 | s2)
print(s1 | s2 | s3)

交集

  • intersection(*others) 返回一个新集合,其中包含原集合以及 others 指定的所有集合中共有的元素。
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = {5, 6, 7, 8}
print(s1.intersection(s2))
print(s1.intersection(s2, s3))
print(s1.intersection(s3))
print("*" * 10)
# 也可以使用 & 进行集合交集运算
print(s1 & s2)
print(s1 & s2 & s3)
print(s1 & s3)

差集

  • difference(*others) 返回一个新集合,包含原集合中在 others 指定的其他集合中不存在的元素。
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = {5, 6, 7, 8}
print(s1.difference(s2))
print(s1.difference(s2, s3))
print(s1.difference(s3))
print("*" * 10)
# 也可以使用 - 进行集合差集运算
print(s1 - s2)
print(s1 - s2 - s3)
print(s1 - s3)

对称差集

  • symmetric_difference(other) 返回一个新集合,其中的元素或属于原集合或属于 other 指定的其他集合,但不能同时属于两者。
s1 = {1, 2, 3, 4}
s2 = {3, 4, 5, 6}
s3 = {5, 6, 7, 8}
print(s1.symmetric_difference(s2))
print(s1.symmetric_difference(s3))
print("*" * 10)
# 也可以使用 ^ 进行集合对称差集运算
print(s1 ^ s2)
print(s1 ^ s3)

总结

  • 集合的概念
  • 添加操作
  • 删除操作
  • 集合数据操作