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

Python列表如何合并连续重复项为单个且保留后续相同值?

Python3 列表连续重复元素合并方案

你需要实现的是仅合并连续重复元素、保留非连续重复值的逻辑,和set()实现的全局去重逻辑完全不同,以下是两种可直接运行的实现方式:

  • 无额外依赖的基础遍历实现
a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]
b = []
for current in a:
    # 结果列表为空,或当前元素与结果列表最后一个元素不同时追加
    if not b or current != b[-1]:
        b.append(current)
print(b)
# 输出:[1, 2, 3, 1, 2, 4, 3]

实现逻辑非常直观,每次只校验当前元素和上一个加入结果的元素是否一致,相同则跳过,不同则新增,自然只会合并连续出现的重复值。

  • 基于标准库itertools.groupby的简洁实现
from itertools import groupby

a = [1, 1, 1, 2, 2, 3, 3, 3, 1, 1, 1, 2, 2, 2, 4, 4, 4, 3, 3, 3, 3]
b = [key for key, _ in groupby(a)]
print(b)
# 输出:[1, 2, 3, 1, 2, 4, 3]

groupby是Python标准库专门用于按连续相同元素分组的工具,会将连续相同的元素归为同一组,我们只需要取每组的键即可得到目标结果,代码更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:06