Python中的集合(Set)是一种无序、不重复的数据结构,它的主要特性包括:
无序性:集合中的元素没有特定的顺序,你不能通过索引访问集合中的元素。
唯一性:集合中的元素是唯一的,如果尝试添加一个已经存在的元素到集合中,该操作将被忽略。
哈希表实现:Python集合在内部使用哈希表进行存储和查找,因此对集合的操作通常具有良好的时间复杂度。
创建集合的方式有以下两种:
使用大括号
{}
和逗号分隔的元素列表:s = { 1, 2, 3, 4}
使用
set()
函数和一个可迭代对象(如列表、元组等):s = set([1, 2, 3, 4])
空集合的创建必须使用 set()
函数,因为 {}
用于创建空字典:
empty_set = set()
集合的一些常用方法和操作包括:
- 添加元素:
add(element)
- 删除元素:
remove(element)
或discard(element)
- 清空集合:
clear()
- 集合大小(元素数量):
len(s)
- 并集:
union(other_set)
, 可用|
运算符表示 - 交集:
intersection(other_set)
, 可用&
运算符表示 - 差集(集合A中存在但不在集合B中的元素):
difference(other_set)
, 可用-
运算符表示 - 对称差集(两个集合中存在但不在对方的元素):
symmetric_difference(other_set)
, 可用^
运算符表示 - 判断是否为子集:
issubset(other_set)
, 可用<=
运算符表示 - 判断是否为超集:
issuperset(other_set)
, 可用>=
运算符表示 - 判断是否相等:
==
运算符
例如:
s1 = {
1, 2, 3}
s2 = {
2, 3, 4}
# 添加元素
s1.add(5)
# 删除元素
s1.remove(2)
# 并集
union_set = s1.union(s2)
# 交集
intersection_set = s1.intersection(s2)
# 差集
difference_set = s1.difference(s2)
# 对称差集
sym_diff_set = s1.symmetric_difference(s2)
# 判断子集和超集
print(s1.issubset(s2)) # 输出:False
print(s1.issuperset(s2)) # 输出:False
这些基本操作和方法使得集合在处理无序、不重复数据时非常有用,例如去除列表中的重复元素、计算多个集合的交集或并集等。