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

Python中如何基于重复固定值9对数组元素进行分组

按固定值分隔数组分组实现方案

待处理数据

目标数组如下,需要以值9作为分隔标识拆分分组:

size=[9, 41, 1368, 887, 307, 9, 114, 81, 9, 34, 12, 13, 12, 4, 548, 3, 77] 

分组规则:

  • 每两个相邻的9之间的元素为一组
  • 每组第一个元素赋值给b
  • 每组剩余元素拼接为逗号分隔的字符串赋值给c
    期望输出共3组:
分组1
b=41
c=1368,887,307

分组2
b=114
c=81

分组3
b=34
c=12,13,12,4,548,3,77

之前编写的遍历代码没有正确标记分隔位置、也没有对分段元素做暂存处理,因此无法得到正确结果。

实现逻辑

  1. 初始化临时列表存储当前正在收集的分组元素,初始化总分组列表存储所有拆分后的分组
  2. 遍历原数组:
    • 遇到值为9的元素时,如果当前临时列表不为空,说明已经收集完一组元素,将临时列表存入总分组列表,清空临时列表准备收集下一组
    • 遇到非9的元素时,直接加入当前临时列表
  3. 遍历完成后,将最后一段没有被存入总列表的元素追加进去(数组末尾没有9作为结束标记,需要单独处理)
  4. 遍历总分组列表,按格式输出每组的b和c值

完整代码

size = [9, 41, 1368, 887, 307, 9, 114, 81, 9, 34, 12, 13, 12, 4, 548, 3, 77]
groups = []
current = []

for num in size:
    if num == 9:
        if current:
            groups.append(current)
            current = []
    else:
        current.append(num)
if current:
    groups.append(current)

for i, group in enumerate(groups, 1):
    print(f"分组{i}")
    print(f"b={group[0]}")
    print(f"c={','.join(map(str, group[1:]))}\n")

运行上述代码即可得到完全符合预期的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:51:27