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

Python loopindex.py程序重复元素索引异常问题求助

问题描述

需要创建loopindex.py程序,实现以下功能:

  • 将字符串类型的整数转换为整数类型
  • 为列表中的每个数字加上其自身的索引位置

示例1:传入参数['5', '5', '5'],输出应为[5, 6, 7]
示例2:传入参数['4', '11', '0', '0', '1'],输出应为[4, 12, 2, 3, 5]

当前使用的代码:

import sys

loop_list = sys.argv[1:]

def loopindex(loop_list):
  index = []
  for i in loop_list:
    y = loop_list.index(i)
    x = int(i)
    index.append(x + y)
  print(index)
  
loopindex(loop_list)

运行示例2参数时,输出为[4, 12, 2, 2, 5],与期望结果不符,问题出在重复数字无法获取正确的自身索引。


问题原因与解决方法

错误原因

loop_list.index(i)方法只会返回第一个匹配元素的索引,当列表中有重复元素时,所有相同元素都会拿到第一个元素的索引,这就是示例2中两个0都使用索引2,导致第二个0计算结果错误的原因。

正确实现

要获取每个元素的真实索引,使用enumerate()函数即可,它能同时返回元素的索引和对应的值:

import sys

loop_list = sys.argv[1:]

def loopindex(loop_list):
    result = []
    for idx, num_str in enumerate(loop_list):
        num = int(num_str)
        result.append(num + idx)
    print(result)

loopindex(loop_list)

代码说明

  • enumerate(loop_list)遍历列表时,每次返回元组(当前索引, 当前元素值)
  • 直接获取当前元素的真实索引idx,将字符串转成整数后与索引相加,添加到结果列表
  • 无论元素是否重复,每个元素都能对应自己的正确索引,完美解决重复元素的索引问题

测试示例2参数会输出正确的[4, 12, 2, 3, 5],测试示例1的重复元素也会得到[5,6,7]的正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:32:34