集合(set)是一种无序且不重复的数据类型,它是由一组互不相同的元素组成的。在 Python 中,集合类型用大括号 {} 表示,或者使用 set() 函数创建。
下面是一个创建集合的例子:
# 创建集合
set1 = {1, 2, 3, 4, 5}
set2 = set([4, 5, 6, 7, 8])
集合和列表和元组不同,它是无序的,这意味着元素没有固定的顺序。这也意味着我们不能使用索引来访问集合中的元素。另外,集合中的元素是唯一的,即集合中不允许出现重复的元素。如果尝试将重复元素添加到集合中,集合会自动将重复元素去重,只保留一个元素。
下面是一些集合常用操作:
添加元素:使用 add() 方法添加单个元素,使用 update() 方法添加多个元素。
# 创建集合
set1 = {1, 2, 3}
# 添加单个元素
set1.add(4)
print(set1) # 输出 {1, 2, 3, 4}
# 添加多个元素
set1.update([4, 5, 6])
print(set1) # 输出 {1, 2, 3, 4, 5, 6}
删除元素:使用 remove() 或 discard() 方法删除指定元素。如果指定的元素不存在,remove() 方法会抛出异常,而 discard() 方法则不会抛出异常。还可以使用 pop() 方法随机删除一个元素。
# 创建集合
set1 = {1, 2, 3, 4, 5}
# 删除指定元素
set1.remove(3)
print(set1) # 输出 {1, 2, 4, 5}
# 随机删除一个元素
set1.pop()
print(set1) # 输出 {2, 4, 5}
# 删除不存在的元素
set1.discard(6)
print(set1) # 输出 {2, 4, 5}
# 删除不存在的元素并抛出异常
set1.remove(6) # 抛出 KeyError 异常
集合运算:包括交集、并集、差集和对称差集等。
# 创建集合
set1 = {1, 2, 3}
set2 = {3, 4, 5}
# 交集
print(set1 & set2) # 输出 {3}
# 并集
print(set1 | set2) # 输出 {1, 2, 3, 4, 5}
# 差集
print(set1 - set2) # 输出 {1, 2}
# 对称差集
print(set1 ^ set2) # 输出 {1, 2, 4, 5}
集合类型的主要优点如下:
- 去重功能:集合中的元素是唯一的,可以方便地对一组数据进行去重操作。
- 支持集合运算:集合类型支持交、并、差等基本集合运算,可以方便地对数据进行集合运算。
- 可变性:集合类型是可变的,可以通过 add()、remove() 等方法对集合进行增删改操作。
- 效率高:集合类型内部使用了哈希表,因此可以快速进行查找和判断元素是否存在。
- 无序性:集合类型是无序的,可以根据需要自由排序,也可以使用 sorted() 方法进行排序。