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

如何用基础Python找出一个列表中不在另一个列表里的元素

用基础Python找出两个列表的差异元素

方法1:列表推导式(推荐,保留元素顺序与重复项)

直接遍历目标列表,筛选出不在对比列表中的元素,逻辑清晰且能保留原顺序和重复元素:

arr1 = [1,2,3,4,5,6,7]
arr2 = [1,2,3,4,5,6,7,8,9,10]
diff = [x for x in arr2 if x not in arr1]
print(diff)  # 输出 [8,9,10]

方法2:集合差集(适合无重复元素的高效场景)

如果两个列表均无重复元素,可利用集合的差集操作提升效率,若需保持原顺序则结合列表推导式:

arr1 = [1,2,3,4,5,6,7]
arr2 = [1,2,3,4,5,6,7,8,9,10]
# 基础差集(无序)
diff = list(set(arr2) - set(arr1))
# 保持原顺序的高效写法(集合查找为O(1),比列表查找更快)
diff = [x for x in arr2 if x not in set(arr1)]

修复嵌套循环写法

你之前得到连续数字串,是因为错误地拼接字符串而非收集元素到列表。正确的嵌套循环实现如下:

arr1 = [1,2,3,4,5,6,7]
arr2 = [1,2,3,4,5,6,7,8,9,10]
diff = []
for num in arr2:
    exists = False
    for target in arr1:
        if num == target:
            exists = True
            break
    if not exists:
        diff.append(num)
print(diff)  # 输出 [8,9,10]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:15:57