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

Kotlin实现相邻同类型元素分组并保序的优化方案问询

高效实现相邻同类型元素分组(保留原顺序)

需求与示例

需要对列表元素进行分组,仅将相邻的同类型元素归为一组,同时严格保留原有顺序。

输入示例:

A A B A A A A C C A

输出示例:

A A
B
A A A A
C C
A

提问:是否存在比手写简单for循环更高效的实现方式?


解决方案

当然有,Python标准库中的itertools.groupby就是这类场景的最优解之一。

itertools.groupby是专门为相邻重复元素分组设计的工具,底层由C实现,性能远优于纯Python手写的for循环,处理大规模数据时优势会更明显。

具体实现代码

from itertools import groupby

# 输入列表示例
input_list = ['A', 'A', 'B', 'A', 'A', 'A', 'A', 'C', 'C', 'A']
# 执行分组操作,将每组转换为列表
groups = [list(group) for key, group in groupby(input_list)]

# 按示例格式输出结果
for group in groups:
    print(' '.join(group))

关键说明

  • groupby会遍历可迭代对象,自动将连续相同的元素归为一组,返回(分组键值, 组元素迭代器)的元组。
  • 若处理的是自定义对象这类无法直接比较的元素,可通过key参数指定分组依据,比如groupby(input_list, key=lambda x: x.category)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:14:54