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

如何对比两个Python无序列表并找出列表b中新增的元素

列表重复元素对比解决方案

你需要的是支持保留重复元素计数的列表差异对比,普通集合差集会自动去重,无法匹配你的需求,以下是两种可直接运行的实现:

方案1:使用Python标准库collections.Counter(大数据量场景推荐)

Counter是Python内置的频次统计工具,支持直接对频次做差运算,无需安装第三方依赖:

from collections import Counter

x = [1, 2, 3, 4, 5]
b = [1, 1, 2, 3, 4, 5]

# 统计两个列表的元素出现频次
count_x = Counter(x)
count_b = Counter(b)

# 计算频次差值,仅保留b中出现次数更多的元素
diff_counter = count_b - count_x

# 展开为结果列表
result = list(diff_counter.elements())
print(result)
# 输出:[1]

该方案时间复杂度为O(n+m)(n、m分别为两个列表的长度),性能远高于遍历删除方案。

方案2:无依赖手动遍历实现

如果不想引入任何导入模块,可以用复制列表+遍历校验的方式实现:

x = [1, 2, 3, 4, 5]
b = [1, 1, 2, 3, 4, 5]

x_copy = x.copy()
result = []
for item in b:
    if item in x_copy:
        x_copy.remove(item)
    else:
        result.append(item)

print(result)
# 输出:[1]

该方案无需导入模块,适合短列表场景,长列表使用性能较低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:15:03