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

纯Python实现列表连续重复元素提取:修复代码缺陷需求

修复连续重复元素提取问题(符合指定限制)

问题描述

需求:在不使用任何外部库,且不使用any、map或zip函数的前提下,实现从列表中提取连续重复元素至新列表的功能。每个连续重复的元素块(长度≥2)仅需在结果中保留一个对应元素。

  • 输入示例:lst = [1,1,1,2,2,3,4,1,2,2,2,3,3,1,1,1,1,1]
  • 期望输出:repeated_num = [1,2,2,3,1]

原代码缺陷:每次检测到相邻元素相等就直接添加,导致连续n个相同元素会被重复添加n-1次(比如[2,2,2]会输出[2,2]),不符合需求。


修复方案

核心思路是通过一个标记变量避免重复记录同一个连续重复块:

  • 用added布尔变量标记当前连续重复块的元素是否已加入结果
  • 相邻元素相等时,仅在未标记的情况下添加元素并标记
  • 相邻元素不同时,重置标记以检测下一个可能的连续块

修复后代码

# 处理输入:逗号分隔字符串转整数列表(不使用map)
input_parts = input().split(',')
lst = []
for part in input_parts:
    lst.append(int(part))

repeated_num = []
added = False  # 标记当前连续块是否已加入结果

for i in range(len(lst) - 1):
    current = lst[i]
    next_val = lst[i+1]
    if current == next_val:
        if not added:
            repeated_num.append(current)
            added = True
    else:
        # 相邻元素不同,重置标记准备下一轮检测
        added = False

print(repeated_num)

测试验证

输入:1,1,1,2,2,3,4,1,2,2,2,3,3,1,1,1,1,1
输出:[1, 2, 2, 3, 1],完全符合期望结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:39:28