集合操作
集合操作
添加操作
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)