当前位置:首页 > Python > 正文

Python集合运算详解(掌握集合的交、并、差、对称差等数学操作)

Python集合运算 中,集合(set)是一种无序且不重复的数据结构,非常适合用于执行各种集合数学操作。无论你是数据清洗、去重处理,还是进行逻辑判断,掌握集合的基本运算是非常实用的技能。

本教程将从零开始,手把手教你如何使用 Python 的 set 类型进行交集、并集、差集、对称差集等常见操作,即使你是编程小白也能轻松上手!

什么是 Python 集合(set)?

集合是 Python 内置的一种数据类型,用花括号 {} 表示(注意:空集合不能用 {} 创建,需用 set())。集合中的元素必须是不可变类型(如数字、字符串、元组),并且自动去重。

# 创建集合fruits = {"apple", "banana", "cherry", "apple"}  # 自动去重print(fruits)  # 输出:{'banana', 'cherry', 'apple'}# 空集合创建方式empty_set = set()print(type(empty_set))  # <class 'set'>

常见的集合数学操作

Python 提供了多种方式进行 集合交并差集 运算,既支持操作符写法,也支持方法调用。下面我们一一介绍。

Python集合运算详解(掌握集合的交、并、差、对称差等数学操作) Python集合运算 集合数学操作 Python set用法 集合交并差集 第1张

1. 并集(Union)

并集是指两个集合中所有元素的合集(去除重复)。

set1 = {1, 2, 3}set2 = {3, 4, 5}# 方法一:使用 union() 方法union_set = set1.union(set2)# 方法二:使用 | 操作符union_set2 = set1 | set2print(union_set)   # {1, 2, 3, 4, 5}print(union_set2)  # {1, 2, 3, 4, 5}

2. 交集(Intersection)

交集是指两个集合中都包含的元素。

set1 = {1, 2, 3}set2 = {3, 4, 5}# 方法一:使用 intersection() 方法inter_set = set1.intersection(set2)# 方法二:使用 & 操作符inter_set2 = set1 & set2print(inter_set)   # {3}print(inter_set2)  # {3}

3. 差集(Difference)

差集是指属于第一个集合但不属于第二个集合的元素。

set1 = {1, 2, 3}set2 = {3, 4, 5}# set1 - set2diff_set = set1.difference(set2)diff_set2 = set1 - set2print(diff_set)   # {1, 2}print(diff_set2)  # {1, 2}

4. 对称差集(Symmetric Difference)

对称差集是指两个集合中互不相同的元素(即并集减去交集)。

set1 = {1, 2, 3}set2 = {3, 4, 5}# 方法一:symmetric_difference()sym_diff = set1.symmetric_difference(set2)# 方法二:使用 ^ 操作符sym_diff2 = set1 ^ set2print(sym_diff)   # {1, 2, 4, 5}print(sym_diff2)  # {1, 2, 4, 5}

实战小例子:找出共同好友

假设你有两个朋友列表,想找出你们的共同好友,就可以用集合的交集操作:

my_friends = {"Alice", "Bob", "Charlie", "David"}your_friends = {"Bob", "Eve", "Frank", "Charlie"}common_friends = my_friends & your_friendsprint("共同好友:", common_friends)  # 共同好友: {'Bob', 'Charlie'}

总结

通过本教程,你已经掌握了 Python set用法 的核心内容,包括并集、交集、差集和对称差集的操作。这些 集合数学操作 在实际开发中非常高效,尤其适合处理去重和关系判断问题。

记住:集合是无序、不重复的,并且支持丰富的数学运算。多加练习,你就能灵活运用它们解决各种实际问题!