Python如何遍历分组嵌套列表并按首元素标识聚合数值
嵌套列表按首元素分组聚合实现方案
实现逻辑如下:
- 以字典作为临时分组存储容器,键为子列表下标0的分组标识,值为对应分组的数值汇总列表
- 遍历原嵌套列表的每个子项,将子项除首元素外的数值追加到对应分组的列表中
- 按分组标识的字母顺序提取所有分组的数值列表,得到最终结果
可直接运行的实现代码:
def group_by_first_char(old_list): group_map = {} for sub_list in old_list: key = sub_list[0] # 初始化分组 if key not in group_map: group_map[key] = [] # 追加当前子列表的数值 group_map[key].extend(sub_list[1:]) # 按字母顺序提取分组结果 return [v for k, v in sorted(group_map.items())] # 测试调用 old_list = [['A', 1, 2], ['A', 5, 3], ['A', 3, 2], ['B', 1, 1], ['B', 2, 5], ['C', 3 , 1], ['C', 9, 2]] new_list = group_by_first_char(old_list) print(new_list)
运行输出结果:[[1, 2, 5, 3, 3, 2], [1, 1, 2, 5], [3, 1, 9, 2]]
注:你给出的预期输出中最后一个列表的末尾值写为1属于笔误,按输入列表计算对应值应为2。
内容的提问来源于stack exchange,提问作者MattnDo
相关产品推荐
相关产品推荐

