0
点赞
收藏
分享

微信扫一扫

【Python入门教程】第46篇 集合的交集

caoxingyu 2022-02-08 阅读 50

本篇将会介绍集合的交集操作,交集包含了两个集合中的共同元素。

集合的交集

在 Python 中,我们可以使用集合的 intersection() 方法或者交集操作符(&)返回两个或多个集合的交集:

new_set = set1.intersection(set2, set3)
new_set = set1 & set2 & set3

两个或多个集合的交集结果包含了它们的共同元素。以下是两个集合 s1 和 s2:

s1 = {'Python', 'Java','C++'}
s2 = {'C#', 'Java', 'C++' }

这两个集合的交集结果是一个新的集合,包含了元素“Java”和“C++”:

s = {'Java', 'C++'}

以下文氏图解释了集合 s1 和 s2 的交集运算:
Python Set Intersection Example

集合的交集有很多实用的场景。例如,我们可以使用交集查找社交网络应用中两个好友的共同爱好,或者查找 HR 系统中两个员工的共同技能。

intersection() 方法

使用 intersection() 方法获取两个或多个集合的并集语法如下:

new_set = set1.intersection(set2, set3, ...)

以下示例使用 intersection() 方法对集合 s1 和 s2 执行交集运算:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}

s = s1.intersection(s2)

print(s)

输出结果如下:

{'C++', 'Java'}

交集操作符

Python 提供了交集运算符(&),也可以用于返回两个或多个集合的交集:

new_set = s1 & s2 & s3 & ...

以下示例使用交集操作符返回集合 s1 和 s2 的交集:

s1 = {'Python', 'Java', 'C++'}
s2 = {'C#', 'Java', 'C++'}

s = s1 & s2

print(s)

输出结果如下:

{'C++', 'Java'}

以下示例返回了多个集合的交集:

s1 = {1, 2, 3}
s2 = {2, 3, 4}
s2 = {3, 4, 5}

s = s1 & s2 & s3

print(s)


输出结果如下:

```python
{3}

两种方法比较

交集操作符只支持集合对象,intersection() 方法可以支持任何可遍历对象,包括字符串、列表以及字典等。

如果我们将非集合的可遍历对象传递给 intersection() 方法,它会将其转换为集合之后再进行交集操作。但是,如果我们将非集合的可遍历对象传递给交集操作符,将会返回一个错误。

以下示例使用 intersection() 方法返回一个集合与一个列表的交集:

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers.intersection(scores)

print(numbers)

输出结果如下:

{2, 3}

如果我们在以上示例中使用交集运算符,将会返回一个错误:

numbers = {1, 2, 3}
scores = [2, 3, 4]

numbers = numbers & scores

print(numbers)

输出结果如下:

TypeError: unsupported operand type(s) for &: 'set' and 'list'

总结

  • 两个或多个集合的交集结果包含了它们的共同元素。
  • Python 提供了 intersection() 方法和交集运算符(&)获取两个或多个集合的交集。
举报

相关推荐

0 条评论