集合(set)是一个无序的、不包含重复元素的数据结构。集合是由大括号 {} 或者 set() 函数创建的,其中的元素可以是不同的数据类型,但不能是可变的数据类型,例如列表、字典或集合本身。
集合的作用主要包括:
- 成员测试:可以快速判断一个元素是否在集合中。
- 去除重复:由于集合中不能有重复元素,它可以用来去除序列中的重复项。
- 数学运算:集合支持数学上的标准运算,如并集、交集、差集等。
集合的操作方法包括:
- 添加元素:
s.add(item),向集合中添加一个元素。 - 移除元素:
s.remove(item),从集合中移除一个元素,如果元素不存在会引发错误。 - 随机移除元素:
s.pop(),从集合中随机移除一个元素,并返回该元素。 - 清空集合:
s.clear(),清空集合中的所有元素。 - 并集:
s.union(t)或者s | t,返回一个新集合,包含s和t中的所有元素。 - 交集:
s.intersection(t)或者s & t,返回一个新集合,包含s和t中都存在的元素。 - 差集:
s.difference(t)或者s - t,返回一个新集合,包含在s中但不在t中的元素。 - 对称差集:
s.symmetric_difference(t)或者s ^ t,返回一个新集合,包含在s或t中,但不同时在s和t中的元素。 - 判断子集:
s.issubset(t)或者s <= t,如果s中的所有元素都在t中,返回True。 - 判断超集:
s.issuperset(t)或者s >= t,如果t中的所有元素都在s中,返回True。 - 支持
for循环,但不支持while循环,因为集合里面的数据排列顺序是随机的,没有下标。
使用集合可以有效地进行数据的去重和集合运算,提高代码的执行效率和可读性。在处理大量数据时,合理使用集合可以带来性能上的优势。
# 创建集合
s = {1, 2, 3}
t = {3, 4, 5}
# 添加元素
s.add(4)
# 移除元素
s.remove(4)
# 随机移除元素
removed_element = s.pop()
# 清空集合
s.clear()
# 并集
union_set = s.union(t) # 或者 union_set = s | t
# 交集
intersection_set = s.intersection(t) # 或者 intersection_set = s & t
# 差集
difference_set = s.difference(t) # 或者 difference_set = s - t
# 对称差集
symmetric_difference_set = s.symmetric_difference(t) # 或者 symmetric_difference_set = s ^ t
# 判断子集
is_subset = s.issubset(t) # 或者 is_subset = s <= t
# 判断超集
is_superset = s.issuperset(t) # 或者 is_superset = s >= t