如何合并嵌套列表,实现相同键仅输出一次、所有对应值排列在键下方
嵌套列表同键合并实现方案
核心思路
- 利用字典键的唯一性做聚合载体,天然满足相同键仅输出一次的要求,每个键对应一个列表,用来存储该键关联的所有值
- 遍历原始嵌套结构的每一组键值,将值追加到对应键的列表中,首次遇到的键先初始化对应的值列表
- Python 3.7及以上版本的原生字典默认保留键的首次插入顺序,不需要额外引入有序字典类,就能保证键的输出顺序和原始数据中第一次出现的顺序一致
- 聚合完成后按顺序拼接内容:先输出键名,再依次拼接该键下收集的所有值即可
代码实现(Python)
注:你提供的示例数据里用大括号包裹键值的写法应为笔误,无序集合无法固定键值位置,实际处理时键值对应使用二元元组存储即可
# 待处理原始数据 thing = [("item", "abc"), ("item", "def"), ("item", "ghi"), ("item2", "jkl"), ("item2", "mno"), ("item2", "pqr")] group_map = {} # 遍历聚合同键值 for key, value in thing: if key not in group_map: group_map[key] = [] group_map[key].append(value) # 组装最终输出 output_list = [] for key, value_list in group_map.items(): output_list.append(key) output_list.extend(value_list) # 生成空格分隔的目标字符串 final_output = " ".join(output_list) print(final_output)
运行结果
执行上述代码后输出内容为:item abc def ghi item2 jkl mno pqr
完全匹配预期格式。如果后续有更多同键的键值对追加到原始列表中,聚合逻辑不需要修改,会自动把新值归到对应键的下方。
内容的提问来源于stack exchange,提问作者snaeker58
相关产品推荐
相关产品推荐

