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

Python开发两个连续值处理函数:去重优化与统计拼接

嘿,针对你提到的两个Python函数问题,我来分享下更优的实现思路,尤其是第一个连续值去重的部分:

1. 连续值去重函数(最优实现方案)

你提到不想用多次循环处理,其实Python标准库的itertools.groupby就是专门解决这类连续重复元素问题的神器,一次遍历就能搞定,时间复杂度是O(n),比多次循环高效太多。

直接上代码:

from itertools import groupby

def remove_consecutive_duplicates(input_list):
    # groupby会把连续相同的元素归为一组,我们只取每组的键值
    return [key for key, _ in groupby(input_list)]

测试你给出的输出列表[0, 0, 1, 1, 1, 2, 2, 1, 2, 1, 2, 1, 2, 2, 2, 1, 1, 0],用这个函数处理后会得到:
[0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0]
完全符合连续值去重的需求,而且代码简洁高效。

2. 连续值统计与拼接函数

虽然你说已经有3个完美实现方案了,但刚好这个功能也能基于groupby来完成,和第一个函数的逻辑一致,复用性很强:

from itertools import groupby

def count_consecutive_and_format(input_list):
    formatted_parts = []
    for key, group in groupby(input_list):
        # 统计每组连续元素的数量
        count = len(list(group))
        formatted_parts.append(f"{count}x{key}")
    # 拼接成预期的字符串格式
    return ", ".join(formatted_parts)

用这个函数处理对应输入,就能直接生成你预期的4x0, 6x1, 3x2, 2x1, 1x2, 1x1, 1x2, 2x1, 6x2, 4x1, 2x0格式结果,逻辑清晰代码也简洁,说不定能作为你的第4个备选方案😉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:41:43