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

Python列表每个元素后删除n个元素的实现与错误排查

问题原因

  • 你在遍历列表的同时调用pop方法删除元素,会直接导致列表的动态长度发生变化,你维护的case_index和遍历迭代器都会出现错位,这是得到间隔删除错误结果的核心原因。
  • 你当前的删除逻辑也不符合需求:你设定的是case_count不等于7时就删除元素,反而会把你需要保留的元素误删。

正确实现方案

方案1:列表切片(最简洁高效)

你的需求是每保留1个元素就删除后续的7个元素,本质就是取列表步长为7+1=8的元素,一行代码就能实现:

n = 7
res = cases[::n+1]

你给出的示例列表运行后得到的结果就是[1, 9, 17],完全符合预期。

方案2:手动遍历实现(适合需要自定义逻辑的场景)

如果要自己写遍历逻辑,不要在遍历原列表的时候修改它,可以通过构建新列表实现:

n = 7
res = []
to_keep = True
skip_cnt = 0
for num in cases:
    if to_keep:
        res.append(num)
        to_keep = False
        skip_cnt = 0
    else:
        skip_cnt += 1
        if skip_cnt == n:
            to_keep = True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 20:57:04