求助:如何基于START标识对列表的列表进行分组?
嵌套列表按指定标识分组的实现方案
核心思路
遍历原列表,以["START"]为分组起始标记:
- 遇到
["START"]时,若当前已有未保存的分组,先将其存入结果列表,再新建一个分组并加入该标记 - 后续非标记元素直接加入当前活跃分组
- 遍历结束后,保存最后一个未完成的分组
纯Python实现代码
lst = [ ["abc"], ["START"], ["cdef"], ["START"], ["fhg"], ["cdef"], ] groups = [] current_group = None for item in lst: if item[0] == "START": # 保存上一个分组(如果存在) if current_group: groups.append(current_group) # 初始化新分组 current_group = [item] elif current_group is not None: # 元素加入当前分组 current_group.append(item) # 保存最后一个分组 if current_group: groups.append(current_group) # 提取分组(按示例需求) group_a, group_b = groups print("group_a =", group_a) print("group_b =", group_b)
代码输出结果
group_a = [['START'], ['cdef']] group_b = [['START'], ['fhg'], ['cdef']]
关于numpy/pandas的说明
这类非规整的嵌套列表,用原生Python循环处理更直观高效。numpy和pandas更适合处理结构化的表格数据,强行用它们实现反而需要额外的转换逻辑,增加复杂度,没必要舍近求远。
内容的提问来源于stack exchange,提问作者Tommaso
相关产品推荐
相关产品推荐

