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

Python 如何从一个列表中提取另一个列表包含的所有元素

方法1:列表推导式(保序,适合小数据量场景)

这是最直观的写法,会严格保留元素在列表U中的原有顺序:

# 初始化列表
U = []
for i in range(1, 26):
    U.append(i)
A = [8,9,10,11,12,16,17,22,25]

# 提取符合要求的元素
result = [x for x in U if x in A]

运行后result的内容为[8, 9, 10, 11, 12, 16, 17, 22, 25]。


方法2:集合优化查询(效率更高,适合大数据量场景)

如果列表长度较大,直接用in判断列表元素存在性的时间复杂度是O(n),把A转成集合后查询的时间复杂度会降到O(1),整体性能提升明显:

set_A = set(A)
result = [x for x in U if x in set_A]

如果你不需要保留元素在U中的原有顺序,也可以直接取两个集合的交集再转列表:

# 两种交集写法等效
result = list(set(U) & set(A))
result = list(set(U).intersection(A))

注意:集合是无序结构,直接取交集的返回结果不保证和U的元素顺序一致,对顺序有要求时不要用这种写法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 07:54:02