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

Python列表迭代:提取带断点数字序列的指定元素

提取列表断点元素的实现方法

需求说明

给定列表 original_list = [1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,7,8],需要提取两类元素:

  • 所有断点处的元素:即当前元素的下一个元素是1时,保留当前元素(比如3→1时保留3,4→1时保留4)
  • 列表的最后一个元素

最终得到结果 new_list = [3,4,5,8]


实现方法

方法1:基础循环遍历

逻辑清晰,适合新手理解:

original_list = [1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,7,8]
new_list = []

# 遍历到倒数第二个元素,避免索引越界
for i in range(len(original_list) - 1):
    current = original_list[i]
    next_item = original_list[i+1]
    # 下一个元素是1,说明当前元素是一段递增序列的末尾,属于断点元素
    if next_item == 1:
        new_list.append(current)

# 添加列表最后一个元素
new_list.append(original_list[-1])

print(new_list)  # 输出: [3,4,5,8]

方法2:列表推导式(简洁版)

用列表推导式简化遍历逻辑,代码更紧凑:

original_list = [1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,7,8]
# 先提取所有断点元素
new_list = [original_list[i] for i in range(len(original_list)-1) if original_list[i+1] == 1]
# 追加最后一个元素
new_list.append(original_list[-1])

print(new_list)  # 输出: [3,4,5,8]

核心逻辑

原列表的递增序列均从1开始,直到遇到下一个1结束。断点元素就是每个这类递增序列的末尾元素(下一个元素为1的位置),再加上整个列表的最后一个元素(它是最后一段递增序列的结尾,无后续的1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:17:36