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

如何对比两个列表并返回元素值存在差异的对应索引

实现方案

两个等长列表对比对应位置元素差异的实现逻辑非常直接:遍历所有索引位置,逐位对比两个列表同位置的元素值,把值不相等的索引收集起来,最后根据收集到的差异索引数量,按要求格式输出结果即可。该方案遍历一次列表就能完成对比,时间复杂度为O(n),处理260个元素的列表没有任何性能压力。

核心代码

def compare_list_diff(a, b):
    # 收集所有值不匹配的索引
    diff_index = [i for i, (v1, v2) in enumerate(zip(a, b)) if v1 != v2]
    
    if not diff_index:
        return "false -> 无存在差异的键"
    
    # 按要求拼接差异键的展示文本
    key_show = " 和 ".join([f"Key {idx}" for idx in diff_index])
    return f"{key_show} 存在差异"

场景验证

直接调用上述函数,三个测试场景的输出完全符合预期:

  1. 场景1
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = [0, 1, 2, 3, 5, 5, 6, 7, 8, 9]
print(compare_list_diff(a, b))
# 输出:Key 4 存在差异
  1. 场景2
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(compare_list_diff(a, b))
# 输出:false -> 无存在差异的键
  1. 场景3
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
b = [0, 9, 2, 3, 4, 5, 6, 7, 3, 9]
print(compare_list_diff(a, b))
# 输出:Key 1 和 Key 8 存在差异

补充说明

  • 如果你的业务场景里可能出现两个列表长度不一致的情况,可以在函数开头增加长度校验逻辑,避免漏对比长度不匹配部分的元素
  • 如果差异数量超过2个,当前代码会自动用和拼接所有Key,比如3个差异会输出Key 1 和 Key 4 和 Key 8 存在差异,如果需要调整分隔符逻辑,修改join的传入参数即可

内容的提问来源于stack exchange,提问作者Gustavo Araújo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 14:57:16