Python中将扁平嵌套列表按指定标识分组为多层嵌套结构的方法
嵌套列表按起始标识分组实现方案
实现逻辑
- 初始化空列表存放最终分组结果
- 遍历原始数组的每一个子列表:
- 若当前子列表首元素为
'PRODUCT NAME PACK',说明是新分组起始,直接向结果列表中新增一个仅包含当前子列表的分组 - 若为非起始标识子列表,直接追加到结果列表的最后一个分组中
- 若当前子列表首元素为
- 遍历完成后得到的结果列表即为目标格式数据
完整实现代码
# 原始输入数组 original_array = [ ['PRODUCT NAME PACK', 'BAIGAM KOT', 'FIAZ BAGH', 'OLD ANARKALI', 'SULTAN PURA', 'TEZAB AAHATA', 'GHORAY SHAH', 'KOT KHAWAJA SAEED'], ['002188', 0, 0, 0, 0, 0, '2', '3'], ['PRODUCT NAME PACK', 'BAGHBAN PURA', 'GAWAL MANDI', 'OLD ANARKALI', 'MAYO HOSPITAL', 'GARHI SHAHU BAZAR', 'BILAL GUNJ', 'LADY WELLINGTON HOSPITAL'], ['002188', '3', 0, 0, 0, 0, 0, 0], ['008999', 0, 0, 0, 0, '1', 0, 0], ['012961', 0, 0, 0, 0, 0, '3', 0] ] result = [] for item in original_array: if item[0] == 'PRODUCT NAME PACK': result.append([item]) else: result[-1].append(item) # 格式化打印验证结果 import pprint pprint.pprint(result)
注意事项
上述代码默认原始数组首个元素为分组起始标识,如果你实际使用时存在首元素不是起始标识的场景,可以在追加到分组前添加if result:的边界判断,避免出现索引报错。
内容的提问来源于stack exchange,提问作者ArslanAli
相关产品推荐
相关产品推荐

