Python集合交集案例如何取共同值

wen python案例 24

本文目录导读:

Python集合交集案例如何取共同值

  1. 基本语法:使用 & 运算符或 intersection() 方法
  2. 实际案例
  3. 多个集合取交集
  4. 将列表转换为集合取交集
  5. 实际应用:用户标签匹配
  6. 注意事项

我来详细介绍一下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%

注意事项

  1. 集合元素必须是不可变类型(数字、字符串、元组等)
  2. 返回值始终是集合类型
  3. 交集运算不会改变原集合
# 错误示例(包含列表)
# set1 = {1, 2, [3, 4]}  # 这会报错,因为列表是可变的
# 正确用法
set1 = {1, 2, (3, 4)}  # 使用元组
set2 = {(3, 4), 5, 6}
print(set1 & set2)  # 输出: {(3, 4)}

这些就是Python中取集合交集的主要方法和案例,建议根据实际需求选择 & 运算符(更简洁)或 intersection() 方法(更灵活,支持多个集合)。

抱歉,评论功能暂时关闭!