You need to enable JavaScript to run this app. 如何遍历列表奇数索引并在对应位置追加"..."后合并回原列表
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历列表奇数索引并在对应位置追加"..."后合并回原列表

列表按间隔追加"..."的实现方案

先对齐核心规则,避免理解偏差

  • 编程场景默认索引从0开始计数,你描述的“每第二个词之后/奇数索引位置追加”,对应0基索引下的1、3、5...位置(也就是从开头数第2、4、6个元素的后面)
  • 追加操作是在原有元素之间插入"..."字符串,不替换、不修改原元素的内容,最终合并后的列表和原列表结构一致,只是多了间隔标识
  • 很多人写的时候容易踩的坑:直接在循环遍历原列表的时候执行插入操作,因为每插入一个元素,后续所有元素的索引都会往后挪一位,最后遍历的时候就会跳着漏元素,比如本来要在第2个、第4个元素后面加东西,结果可能只加到第2个位置就跳过去了

可直接复用的实现逻辑

通用思路

遍历原列表逐元素累积到结果列表,每碰到符合条件的奇数索引位置,就在这个元素后面把"..."一起加进结果里,全程不打乱原列表的索引顺序,不会出现错位问题。

稳妥版实现(新建结果列表,无索引错位风险)

def append_dots_every_second(origin_list):
    res = []
    for index, item in enumerate(origin_list):
        res.append(item)
        # 匹配0基下的奇数索引位置
        if index % 2 == 1:
            res.append("...")
    return res

测试示例:
输入原列表["春", "雨", "惊", "春", "清", "谷", "天"]
输出结果:["春", "雨", "...", "惊", "春", "...", "清", "谷", "...", "天"]

原列表原地修改版实现(直接合并回原列表,无额外内存开销)

如果要求必须把处理后的内容写回原列表(不能新建独立的结果列表),需要从后往前遍历插入,避免索引偏移:

def append_dots_inplace(origin_list):
    # 从后往前定位需要插入的位置,保证前面的元素索引不会被插入操作打乱
    for insert_pos in range(len(origin_list)-2, -1, -2):
        origin_list.insert(insert_pos + 1, "...")
    return origin_list

如果你的“奇数索引”是按1基规则计数(也就是第1、3、5个元素后面追加),只要把判断条件里的取余判断调整为index % 2 == 0即可适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.14 05:54:00