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

Python查找两个列表首次不等位置索引的代码异常排查

问题排查

  • 无输出原因:你没有显式调用diff_index函数并打印返回结果,执行代码自然不会输出内容,需要补充函数调用与打印语句。
  • 逻辑缺陷:现有代码仅对比了两个列表长度重合部分的元素,当短列表所有元素与长列表对应位置完全相等时(比如你的测试用例a0和a1),会错误返回-1,该场景下首次不相等的索引应为短列表的长度值。

修复后代码

from typing import List

a0: List[int] = [1, 2]
a1: List[int] = [1, 2, 3, 4, 5]
a2: List[int] = [1, 2, 33, 4, 5]

def diff_index(l1: list, l2: list) -> int:
    min_len = min(len(l1), len(l2))
    # 遍历公共长度部分找第一个差异
    for i in range(min_len):
        if l1[i] != l2[i]:
            return i
    # 公共长度部分无差异时,长度不同则返回短列表长度,否则返回-1表示完全一致
    return min_len if len(l1) != len(l2) else -1

# 测试调用
print(diff_index(a0, a1)) # 输出2
print(diff_index(a1, a2)) # 输出2
print(diff_index(a1, a1)) # 输出-1

逻辑说明

修复后的代码覆盖了所有边界场景:

  • 两个列表完全相等:返回-1
  • 公共长度范围内存在差异:返回第一个差异的索引值
  • 公共长度范围完全一致但长度不同:返回较短列表的长度作为首次差异索引

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:06:07