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

如何对JavaScript数组元素进行分组?附示例数据与预期输出

实现方法

这里提供两种Python实现方式,按需选择:

方法一:用字典统计分组(保留元素首次出现顺序)

遍历原始列表,用字典记录每个元素对应的子列表,遇到相同元素就追加进去,最后提取字典的值即可:

original_list = ['aaa','bbb','ccc','ddd','aaa','bbb','eee','ccc','aaa']
grouped = {}
for item in original_list:
    grouped.setdefault(item, []).append(item)
result = list(grouped.values())
print(result)

输出结果:

[['aaa', 'aaa', 'aaa'], ['bbb', 'bbb'], ['ccc', 'ccc'], ['ddd'], ['eee']]

方法二:排序后用itertools.groupby(按元素排序后的顺序)

先对列表排序让相同元素聚集,再用itertools.groupby分组:

from itertools import groupby

original_list = ['aaa','bbb','ccc','ddd','aaa','bbb','eee','ccc','aaa']
sorted_list = sorted(original_list)
result = [list(g) for _, g in groupby(sorted_list)]
print(result)

输出结果:

[['aaa', 'aaa', 'aaa'], ['bbb', 'bbb'], ['ccc', 'ccc'], ['ddd'], ['eee']]

注意:两种方法的分组顺序有区别:方法一保留元素在原列表中首次出现的顺序;方法二会按元素的字典序排序后分组。如果原列表元素首次出现顺序和排序后一致,两种方法结果相同。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:45:34