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

Python列表相同元素调用index返回重复索引的原因及替代方案

问题原因

你得到[0,0]的结果是因为list.index()方法的特性:该方法会从列表头部开始查找,始终返回第一个和目标元素匹配的索引值。你传入的words列表里两个元素都是me,第二次循环传入的元素还是me,index方法只会返回第一个me的下标0,所以最终输出就是[0,0]。

正确实现方案

你需要的是遍历列表的同时获取每个元素对应的下标,直接用Python内置的enumerate()函数即可,它会同时返回当前遍历的下标和元素值,示例代码如下:

def nth_char(words):
    newArray = []
    for idx, val in enumerate(words):
        newArray.append(idx)
    return newArray

用你给出的words = ['me','me']调用该函数,返回结果就是你预期的[0,1]。

如果要更简洁的写法,可以直接用列表推导式,一行就能完成:

def nth_char(words):
    return [idx for idx, _ in enumerate(words)]

这里的_是占位符,表示我们不需要用到遍历得到的元素值,只需要下标即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:54:03