Python集合之set详解
集合(set)是Python内置的一种基本数据类型,它可以看做是没有值的字典(dict),支持元素唯一、无序、可变的特点,可以完成对数学中集合的各种常规操作。
创建集合
可以使用花括号{}或set()函数创建集合,但需要注意的是集合元素不可修改,不能包含可变对象。在创建集合时,可以包含不同类型的元素,集合会自动去重。
# 使用花括号创建集合
a = {1, 2, 3}
print(a) # 输出 {1, 2, 3}
# 使用set()函数创建集合
b = set([4, 5, 6])
print(b) # 输出 {4, 5, 6}
# 创建包含不同类型元素的集合
c = {1, "hello", (3, 4)}
print(c) # 输出 {1, 'hello', (3, 4)}
集合操作
常用的集合操作包括并集、交集、差集、对称差集等。
并集
并集表示合并两个集合中的所有元素,使用 竖线 | 或 union() 方法实现。
a = {1, 2, 3}
b = {2, 3, 4}
c = a | b
print(c) # 输出 {1, 2, 3, 4}
# 使用 union() 方法求并集
d = a.union(b)
print(d) # 输出 {1, 2, 3, 4}
交集
交集表示两个集合相同的元素,使用 与符号 & 或 intersection() 方法实现。
a = {1, 2, 3}
b = {2, 3, 4}
c = a & b
print(c) # 输出 {2, 3}
# 使用 intersection() 方法求交集
d = a.intersection(b)
print(d) # 输出 {2, 3}
差集
差集表示在第一个集合中但不在第二个集合中的元素,使用 减号 – 或 difference() 方法实现。
a = {1, 2, 3}
b = {2, 3, 4}
c = a - b
print(c) # 输出 {1}
# 使用 difference() 方法求差集
d = a.difference(b)
print(d) # 输出 {1}
对称差集
对称差集表示在两个集合中不重叠的元素,使用 异或符号 ^ 或 symmetric_difference() 方法实现。
a = {1, 2, 3}
b = {2, 3, 4}
c = a ^ b
print(c) # 输出 {1, 4}
# 使用 symmetric_difference() 方法求对称差集
d = a.symmetric_difference(b)
print(d) # 输出 {1, 4}
修改集合
集合是可变的,支持添加、删除元素。
添加元素
使用 add() 方法可以向集合中添加元素,如果添加的元素已存在,则不进行任何操作。
a = {1, 2, 3}
a.add(4)
print(a) # 输出 {1, 2, 3, 4}
# 添加已存在的元素,不进行操作
a.add(2)
print(a) # 输出 {1, 2, 3, 4}
删除元素
使用 remove() 或 discard() 方法可以删除集合中的元素,区别在于如果删除不存在的元素,remove() 方法会抛出KeyError异常,而discard() 方法不会。
a = {1, 2, 3}
a.remove(2)
print(a) # 输出 {1, 3}
# 使用 discard() 方法删除元素
a.discard(3)
print(a) # 输出 {1}
总结
本文详细介绍了Python集合的创建、操作和修改等基本知识,同时提供了多个示例说明。使用集合可以优雅地解决很多问题,如去重、快速查找等,希望对你有所启发。