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