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

Python移除列表起始偶数函数异常:全偶数列表未清空问题

解决列表持续移除首个偶数元素的问题

你的代码问题出在用for循环遍历列表的同时修改列表。Python的for循环基于初始列表的迭代器创建,当执行lst.pop(0)时,列表元素向前移位,但迭代器的位置不会同步调整,导致部分元素被跳过,无法持续检查新的列表首个元素。

以测试用例[4,8,10]为例,执行过程如下:

  1. 初始迭代器指向第一个元素4,进入循环后pop(0),列表变为[8,10]
  2. 迭代器移动到下一个位置,取到原列表的第三个元素10,进入循环
  3. 此时检查lst[0]是8(偶数),执行pop(0),列表变为[10]
  4. 迭代器已走完所有初始元素,循环结束,剩下的[10]未被处理

改用while循环即可解决该问题,它会持续检查当前列表的首个元素,直到列表为空或首个元素不是偶数:

def delete_starting_evens(lst):
    while lst and lst[0] % 2 == 0:
        lst.pop(0)
    return lst


print(delete_starting_evens([4, 8, 10, 11, 12, 15]))  # 输出 [11, 12, 15]
print(delete_starting_evens([4, 8, 10]))  # 输出 []

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 06:10:32