嵌套列表按顺序分组、移除PAD元素并按键聚合实现方案
嵌套列表按标识分组实现方案
需求说明
给定固定结构的嵌套列表,需按规则完成分组转换:
- 按每个子元素携带的分组标识对内容归类
- 全程保留原始输入的先后顺序,不得重排
- 处理时移除所有内容列表中的
'PAD'占位元素 - 最终输出键为分组标识、值为合并后内容列表的字典
输入样例
nested_list = [ [['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A'], 'M1'], [['B', 'B', 'B', 'B', 'B', 'B', 'B', 'PAD'], 'M1'], [['A', 'PAD', 'PAD', 'PAD', 'PAD', 'PAD', 'PAD', 'PAD'], 'M2'], [['A', 'A', 'A', 'PAD', 'PAD', 'PAD', 'PAD', 'PAD'], 'M3'] ]
期望输出
{ "M1" : ['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A','B', 'B', 'B', 'B', 'B', 'B', 'B'], "M2" : ['A'], "M3" : ['A', 'A', 'A'] }
实现代码
Python 3.7及以上版本的字典默认保留键的插入顺序,直接遍历处理即可满足顺序要求:
res = {} for content, tag in nested_list: # 过滤PAD占位符 valid_content = [c for c in content if c != 'PAD'] # 按标签追加内容 if tag not in res: res[tag] = [] res[tag].extend(valid_content)
执行后res的结构和内容与期望输出完全匹配。
内容的提问来源于stack exchange,提问作者Mr.ML.Engineer
相关产品推荐
相关产品推荐

