用Python进行AI数据分析进阶教程16:集合及其运算
关键词:Python集合、集合运算、并集、交集、字典与集合区分
摘要:本教程系统讲解Python集合的各类运算,涵盖并集、交集、差集与对称差集的核心概念、实现方式(如union()、intersection()方法)及使用要点。集合作为一种无序且元素唯一的数据结构,天然支持数学集合操作,每次运算均返回新集合,原集合保持不变。文章还深入探讨字典与集合的直观区别——字典以键值对形式存储,集合仅包含唯一元素;空字典用{}表示,空集合必须通过set()创建。通过丰富的代码示例,帮助读者快速掌握Python集合运算技巧与字典、集合的辨识方法。
在Python编程中,集合(set)是一种高效且实用的数据结构——它具备无序性和元素唯一性,特别适合执行各类集合运算。实际上,它的设计理念与中学数学中的集合概念高度一致。那么,Python集合究竟能带来哪些操作可能性?接下来我们逐一解析。
一、概念
1、并集:将两个或多个集合中的所有元素合并在一起,重复元素仅保留一份,最终生成一个新集合。
2、交集:提取同时存在于所有集合中的元素,组合成一个新集合。
3、差集:对于集合A和B,A与B的差集由那些属于A但不在B中的元素构成。
4、对称差集:两个集合的对称差集,即“仅属于其中一个集合而不属于另一个”的元素集合,公式表示为(A - B) ∪ (B - A)。
二、关键点
1、并集运算
● 使用 union() 方法,该方法可接受多个可迭代对象,将其全部元素合并为新集合;更简洁的方式是使用 | 运算符。运算结果均为新集合,原始集合不受影响。
2、交集运算
● 通过 intersection() 方法或 & 运算符实现。前者支持多个可迭代对象,后者仅连接两个集合。原集合同样保持不变。
3、差集运算
● 采用 difference() 方法或 - 运算符。结果仅包含第一个集合中存在而其他集合中没有的元素。原始集合始终不变。
4、对称差集运算
● 利用 symmetric_difference() 方法或 ^ 运算符。它返回两个集合中彼此不重复的所有元素。原集合依然保持原样。
三、注意点
● 集合中的元素必须是不可变数据类型,例如整数、字符串或元组。列表、字典等可变对象无法作为集合元素。
● 执行集合运算时,建议参与对象均为集合类型,或至少为可迭代对象,否则可能产生非预期结果。
● 由于集合本身无序,运算结果中元素的排列顺序可能与预期不同——但这并不影响集合的数学本质。
四、举例说明
通过实例可以更直观地理解:
# 创建两个集合
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 并集
union_result1 = set1.union(set2)
union_result2 = set1 | set2
print(union_result1) # 输出:{1, 2, 3, 4, 5, 6}
print(union_result2) # 输出:{1, 2, 3, 4, 5, 6}
# 交集
intersection_result1 = set1.intersection(set2)
intersection_result2 = set1 & set2
print(intersection_result1) # 输出:{3, 4}
print(intersection_result2) # 输出:{3, 4}
# 差集(set1 有 set2 没有的)
difference_result1 = set1.difference(set2)
difference_result2 = set1 - set2
print(difference_result1) # 输出:{1, 2}
print(difference_result2) # 输出:{1, 2}
# 对称差集(彼此不重复的)
symmetric_difference_result1 = set1.symmetric_difference(set2)
symmetric_difference_result2 = set1 ^ set2
print(symmetric_difference_result1) # 输出:{1, 2, 5, 6}
print(symmetric_difference_result2) # 输出:{1, 2, 5, 6}
通过这些示例,相信您已能清晰掌握Python集合运算的核心用法。
【补充】字典与集合都用花括号{},那如何区分呢?
请移步参阅:《Python编程:字典与集合都用花括号{},那如何区分呢?》
——The END——
