集合(Set)是一种无序且元素唯一的数据结构,用于存储不重复的元素(即集合具有无序性和互异性两个重要特性)。集合可以用于执行集合操作,如并集、交集、差集等。
定义集合
可以使用大括号 {}
或者 set()
函数来创建集合。注意,如果要创建空集合,必须使用 set()
,因为 {}
会创建一个空字典。
# 创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)
# 创建空集合
empty_set = set()
print(empty_set)
集合操作
添加元素
使用 add()
方法向集合中添加元素,如果元素已经存在,则不会重复添加。
my_set.add(6)
print(my_set)
移除元素
使用 remove()
方法移除集合中的元素,如果元素不存在会引发 KeyError 错误。另一个选项是使用 discard()
方法,它不会引发错误。
my_set.remove(3)
print(my_set)
my_set.discard(10) # 不会引发错误
集合操作
理解(如图):
示例:
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 并集
union_set = set1.union(set2) # 使用方法
print(union_set)
print(set1 | set2) # 使用操作符
# 交集
intersection_set = set1.intersection(set2) # 使用方法
print(intersection_set)
print(set1 - set2) # 使用操作符
# 差集
difference_set = set1.difference(set2) # 使用方法
print(difference_set)
print(set1 & set2) # 使用操作符
# 对称差
symmetric_diff_op = set1 ^ set2
print(symmetric_diff_op) # 使用操作符
symmetric_diff_method = set1.symmetric_difference(set2)
print(symmetric_diff_method) # 使用方法
遍历集合
可以使用 for 循环来遍历集合中的元素。
for element in my_set:
print(element)
其他操作
len()
函数返回集合中元素的个数。in
操作符用于检查元素是否存在于集合中。
其它说明:
1、集合底层使用哈希存储(一种高效率存储方法)
2、哈希存储的关键是设计一个好的哈希函数
3、如果一个对象无法计算哈希码,就不能放到集合中,如列表、集合、字典都是可变容器,都无法计算哈希码,因此都不能放到集合中,作为集合的元素。
4、集合和字典通常比列表和元组更高效,因为集合和字典是哈希存储,利用了哈希表来快速定位元素,而列表和元组是顺序存储。
变容器,都无法计算哈希码,因此都不能放到集合中,作为集合的元素。
4、集合和字典通常比列表和元组更高效,因为集合和字典是哈希存储,利用了哈希表来快速定位元素,而列表和元组是顺序存储。