本文目录导读:

我来详细介绍一下Python中取集合交集的几种方法和实际案例。
基本语法:使用 & 运算符或 intersection() 方法
使用 & 运算符
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 取交集
common = set1 & set2
print(common) # 输出: {4, 5}
使用 intersection() 方法
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
# 取交集
common = set1.intersection(set2)
print(common) # 输出: {4, 5}
实际案例
案例1:共同好友
my_friends = {'张三', '李四', '王五', '赵六'}
friend_friends = {'李四', '赵六', '钱七', '孙八'}
# 找出共同好友
common_friends = my_friends & friend_friends
print(f"共同好友:{common_friends}") # 输出: {'李四', '赵六'}
案例2:两个班级的共同课程
class_a_courses = {'数学', '语文', '英语', '物理'}
class_b_courses = {'数学', '化学', '英语', '生物'}
# 找出共同课程
common_courses = class_a_courses.intersection(class_b_courses)
print(f"共同课程:{common_courses}") # 输出: {'数学', '英语'}
案例3:员工技能匹配
required_skills = {'Python', 'Java', 'SQL', 'Docker'}
applicant_skills = {'Python', 'JavaScript', 'SQL', 'Git'}
# 找出匹配的技能
matching_skills = required_skills & applicant_skills
print(f"匹配的技能:{matching_skills}") # 输出: {'Python', 'SQL'}
print(f"匹配数量:{len(matching_skills)}") # 输出: 2
多个集合取交集
使用 & 运算符
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
set3 = {3, 4, 8, 9, 10}
# 三个集合的交集
common = set1 & set2 & set3
print(common) # 输出: {3, 4}
使用 intersection() 方法(支持多个参数)
set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
set3 = {3, 4, 8, 9, 10}
# 多个集合的交集
common = set1.intersection(set2, set3)
print(common) # 输出: {3, 4}
将列表转换为集合取交集
# 假设有两个列表需要找出共同元素
list1 = [1, 2, 3, 4, 5, 5, 6] # 包含重复元素
list2 = [4, 5, 6, 7, 8, 8, 9]
# 转换为集合再取交集
common_elements = set(list1) & set(list2)
print(f"共同元素:{sorted(common_elements)}") # 输出: [4, 5, 6]
实际应用:用户标签匹配
# 电商网站用户标签
user_a_tags = {'电子', '数码', '手机', '电脑', '游戏'}
user_b_tags = {'手机', '家电', '电脑', '家居', '游戏'}
# 计算共同兴趣标签
common_interests = user_a_tags & user_b_tags
print(f"共同兴趣标签:{common_interests}")
# 输出: {'电脑', '游戏', '手机'}
# 计算兴趣相似度
similarity_score = len(common_interests) / len(user_a_tags | user_b_tags)
print(f"兴趣相似度:{similarity_score:.2%}") # 输出: 60.00%
注意事项
- 集合元素必须是不可变类型(数字、字符串、元组等)
- 返回值始终是集合类型
- 交集运算不会改变原集合
# 错误示例(包含列表)
# set1 = {1, 2, [3, 4]} # 这会报错,因为列表是可变的
# 正确用法
set1 = {1, 2, (3, 4)} # 使用元组
set2 = {(3, 4), 5, 6}
print(set1 & set2) # 输出: {(3, 4)}
这些就是Python中取集合交集的主要方法和案例,建议根据实际需求选择 & 运算符(更简洁)或 intersection() 方法(更灵活,支持多个集合)。