pin_drop当前位置:知识文库 ❯ 图文

Python集合交集运算详解 - intersection方法与&运算符

概述

交集是集合论中的基本运算,返回同时属于两个集合的元素。Python 提供了 intersection() 方法和 & 运算符两种方式计算交集。交集运算在数据去重、共同好友查找等场景中非常实用。


语法

代码示例

set.intersection(other, ...)
set & other & ...

返回值:包含交集元素的新集合


基本用法

intersection 方法

代码示例

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
result = a.intersection(b)
print(result)

输出:

代码示例

{3, 4, 5}

& 运算符

代码示例

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
result = a & b
print(result)

输出:

代码示例

{3, 4, 5}

多集合交集

代码示例

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
c = {4, 5, 6, 7, 8}

result1 = a.intersection(b, c)
result2 = a & b & c
print(result1)
print(result2)

输出:

代码示例

{4, 5}
{4, 5}

intersection_update 方法

intersection_update() 原地修改集合,只保留交集元素:

代码示例

a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7}
a.intersection_update(b)
print(a)

输出:

代码示例

{3, 4, 5}
方法 修改方式 返回值
intersection() 创建新集合 新集合
intersection_update() 原地修改 None

常见应用场景

共同好友

代码示例

my_friends = {"Alice", "Bob", "Charlie", "David"}
your_friends = {"Bob", "Charlie", "Eve", "Frank"}
common = my_friends & your_friends
print(f"共同好友: {common}")

输出:

代码示例

共同好友: {'Bob', 'Charlie'}

多条件筛选

代码示例

python_devs = {"Alice", "Bob", "Charlie"}
java_devs = {"Bob", "David", "Eve"}
senior_devs = {"Alice", "Bob", "Frank"}
full_stack = python_devs & java_devs & senior_devs
print(f"全栈高级: {full_stack}")

输出:

代码示例

全栈高级: {'Bob'}

注意事项

区别intersection() 接受任何可迭代对象,& 只接受集合。

不修改原集合intersection() 返回新集合,原集合不变。

空交集:没有共同元素时返回空集合 set()


小结

  • intersection()& 计算交集

  • intersection() 接受任何可迭代对象,& 只接受集合

  • intersection_update() 原地修改,只保留交集

  • 常用于查找共同元素、多条件筛选


练习题

练习1

给定三个购物清单 list1 = {"苹果", "香蕉", "牛奶"}list2 = {"牛奶", "面包", "鸡蛋"}list3 = {"牛奶", "鸡蛋", "果汁"},找出三个清单中都有的商品。

练习2

编写一个函数 common_words(text1, text2),接两个字符串,返回两个文本中共有的单词集合(忽略大小写)。

常见问题

intersection() 和 & 运算符有什么区别?

intersection() 接受任何可迭代对象,而 & 运算符只接受集合类型。使用 intersection() 更加灵活,可以直接传入列表、元组等。

intersection() 会修改原集合吗?

不会。intersection() 返回一个新的集合,原集合保持不变。如果需要原地修改,请使用 intersection_update() 方法。

如何计算三个或更多集合的交集?

可以使用 intersection() 方法传入多个参数,如 a.intersection(b, c, d);或者使用 & 运算符链式连接,如 a & b & c & d。

两个集合没有共同元素时交集是什么?

当两个集合没有共同元素时,intersection() 返回空集合 set(),而不是 None 或报错。

标签: Python 集合运算 交集 intersection 数据去重 Python教程

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python集合pop()方法 下一篇: Python集合并集运算详解 - union方法与|运算符

poll相关推荐