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

如何合并嵌套列表,实现相同键仅输出一次、所有对应值排列在键下方

嵌套列表同键合并实现方案

核心思路

  • 利用字典键的唯一性做聚合载体,天然满足相同键仅输出一次的要求,每个键对应一个列表,用来存储该键关联的所有值
  • 遍历原始嵌套结构的每一组键值,将值追加到对应键的列表中,首次遇到的键先初始化对应的值列表
  • 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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:36:26