Python:集合(set)数据类型

在Python中,集合(Set)是一种无序的、不包含重复元素的数据结构。

定义集合

可以使用大括号 {} 或者 set() 函数来创建集合。例如:

# 使用大括号创建集合
my_set1 = {1, 2, 3, 4, 4}  
# 自动去除重复元素,结果为 {1, 2, 3, 4}
# 使用set()函数创建集合
my_set2 = set([1, 2, 3, 3])  
# 结果为 {1, 2, 3}

集合的基本操作

添加元素:使用 add() 方法向集合中添加单个元素。例如:

my_set = {1, 2, 3}
my_set.add(4)
print(my_set)  
# 输出 {1, 2, 3, 4}

删除元素:可以使用 remove() 方法删除指定元素,如果元素不存在会引发 KeyError;也可以使用 discard() 方法,它在元素不存在时不会引发异常。例如:

my_set = {1, 2, 3, 4}
my_set.remove(3)
print(my_set)  
# 输出 {1, 2, 4}
my_set.discard(5)  
# 不会引发异常
print(my_set)  
# 输出 {1, 2, 4}

更新集合:使用 update() 方法可以将一个集合中的所有元素添加到另一个集合中。例如:

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1)  
# 输出 {1, 2, 3, 4, 5}

集合的运算

交集:使用 & 运算符或者 intersection() 方法可以获取两个集合的交集。例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 & set2)  
# 输出 {3, 4}
print(set1.intersection(set2))  
# 输出 {3, 4}

并集:使用 | 运算符或者 union() 方法可以获取两个集合的并集。例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 | set2)  
# 输出 {1, 2, 3, 4, 5, 6}
print(set1.union(set2))  
# 输出 {1, 2, 3, 4, 5, 6}

差集:使用 - 运算符或者 difference() 方法可以获取两个集合的差集。例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 - set2)  
# 输出 {1, 2}
print(set1.difference(set2))  
# 输出 {1, 2}

对称差集:使用 ^ 运算符或者 symmetric_difference() 方法可以获取两个集合的对称差集,即包含在两个集合中但不同时包含在两个集合中的元素。例如:

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 ^ set2)  
# 输出 {1, 2, 5, 6}
print(set1.symmetric_difference(set2))  
# 输出 {1, 2, 5, 6}

集合的遍历

可以使用 for 循环遍历集合中的元素。例如:

my_set = {1, 2, 3, 4}
for item in my_set:
    print(item)

集合的应用场景

去重:由于集合中的元素是唯一的,所以可以方便地对列表等可迭代对象进行去重操作。例如:

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list)  
# 输出 [1, 2, 3, 4, 5]

数据关系判断:集合的运算可以用于判断数据之间的关系,如两个数据集的共同元素、不同元素等。例如,在分析两个用户群体的共同兴趣爱好或者不同偏好时,可以使用集合的交集和差集来实现。

集合在Python中是一种非常实用的数据结构,能够帮助我们更高效地处理和分析数据,特别是在处理具有唯一性要求的数据和进行数据关系比较时,具有很大的优势。

Python编程语言基础