提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
在讨论集合(Set)时,我们通常是在编程或数学语境下进行。不过,由于“集合的键与值”这一表述更多地与字典(或映射、哈希表)相关,我将分别解释一下在python集合和字典(或类似结构)的基本概念及常见操作
1. 集合的定义
在Python中,集合是通过大括号 {}
创建的,但与字典(Dictionary)不同,集合中的元素不是键值对(Key-Value Pair),而是简单的元素列表。另外,创建空集合时不能使用 {}(这会创建一个空字典),而应该使用 set()
。
# 创建一个集合
my_set = {1, 2, 3, 4}
# 创建一个空集合
empty_set = set()
2. 集合的键与值
集合没有“键与值”的概念。集合只包含元素,这些元素在集合中是唯一的,并且没有与之关联的“值”。集合中的每个元素都可以被看作是等价的,没有特定的顺序或索引。
3. 集合的常见操作
添加元素:
- 使用
.add()
方法向集合中添加一个元素。如果元素已存在,则不会重复添加。
my_set.add(5)
删除元素:
- 可以使用
.remove()
方法(如果元素存在则删除,否则抛出异常)或 .discard() 方法(如果元素存在则删除,否则不抛出异常)来删除集合中的元素。还可以使用 .pop() 方法随机删除并返回一个元素(如果集合为空,则抛出异常)。
my_set.remove(2)
my_set.discard(3) # 如果3不存在,也不会报错
my_set.pop() # 随机删除一个元素
检查元素:
- 使用
in
关键字来检查某个元素是否存在于集合中。
if 4 in my_set:
print("4 在集合中")
集合运算:
- Python支持集合的多种运算,包括并集(
|
或.union()
)、交集(&
或.intersection()
)、差集(-
或.difference()
)、对称差集(^
或.symmetric_difference()
)等。
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 | set2) # 并集 {1, 2, 3, 4}
print(set1 & set2) # 交集 {2, 3}
print(set1 - set2) # 差集 {1},即存在于set1但不在set2中的元素
print(set1 ^ set2) # 对称差集 {1, 4},即存在于一个集合中但不在另一个集合中的元素
子集与超集:
- 使用
<
、<=
、>
、>=
运算符来检查一个集合是否是另一个集合的子集或超集。
print(set1 < set2) # False,因为set1不是set2的子集
print(set2 >= set1) # True,因为set2是set1的超集
集合的大小:
- 使用
len()
函数来获取集合中元素的数量。
print(len(my_set))
清空集合:
- 使用
.clear()
方法来移除集合中的所有元素。
my_set.clear()
总结
请注意,集合中的元素必须是不可变类型(如整数、浮点数、字符串、元组等),因为集合需要能够比较元素以确定它们是否相等和唯一。列表(List)和字典(Dictionary)等可变类型不能作为集合的元素。