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
相关产品推荐
相关产品推荐

