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

Python双重循环查找两列表同值索引输出错误问题求助

问题根因

你的代码逻辑和需求不匹配,核心问题有两个:

  • 需求要求比较两个列表相同索引位置的元素,你写的双重嵌套循环是拿第一个列表的每个元素,和第二个列表的所有元素做值匹配,完全没校验索引是否一致
  • 只要值相等你就追加第一个列表的索引,会出现重复追加、错误追加的问题:比如lst1索引0的5,匹配到lst2索引0的5和索引4的5,就会重复追加两次0;lst1索引4的3和lst2索引3的3值相等但位置不同,被你错误加入结果,反而漏掉了索引5位置两个1相等的正确匹配。
修正方案

同位置比较不需要双重循环,单次遍历索引即可,遍历范围取两个列表长度的最小值,避免索引越界:

def same_values(lst1, lst2):
  res = []
  traverse_length = min(len(lst1), len(lst2))
  for idx in range(traverse_length):
    if lst1[idx] == lst2[idx]:
      res.append(idx)
  return res

print(same_values([5, 1, -10, 3, 3, 1], [5, 10, -10, 3, 5, 1]))

运行上述代码会输出预期结果[0, 2, 3, 5]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 14:15:37