You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取两个Python列表的交集?移除非共同元素

Python两个列表求交集的解决方法

为什么zip()不行?

zip()的作用是将两个列表中同索引位置的元素配对成元组,比如zip(x,z)会得到('Monday','Wednesday'), ('Tuesday','Thursday'), ...,这和你要找的"共同存在的元素"逻辑完全无关,所以用它解决不了这个问题。

方法1:用集合(最简单高效)

集合的交集操作天生适合找共同元素,代码如下:

x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']
z = ['Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

# 方式1:用&运算符求交集
y = list(set(x) & set(z))
# 方式2:用intersection方法
y = list(set(x).intersection(z))

注意:集合是无序的,如果你的结果需要保持原列表(比如x)中的元素顺序,这种方法可能不适用。

方法2:列表推导式(保持元素顺序)

如果你需要结果和x中元素出现的顺序一致,可以用列表推导式遍历x,筛选出同时在z里的元素:

x = ['Monday', 'Tuesday', 'Wednesday', 'Thursday']
z = ['Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']

y = [item for item in x if item in z]
# 输出结果:['Wednesday', 'Thursday']

这种方法的结果顺序和你预期完全一致。

内容的提问来源于stack exchange,提问作者Eliahs Johansson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 05:45:31