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

如何扁平化Python含多字典列表中的嵌套字典列表?求实现方法

实现列表结构转换的方法

当然可以实现这个转换,以下是两种适合新手的操作方法:

方法一:列表推导式(简洁写法)

先定义你的原始数据:

original_list = [
    {'name': 'Jon', 'values': [{'value': 'Decent'}, {'value': 'Average'}]},
    {'name': 'grunion', 'values': [{'value': 'Junk'}, {'value': 'Bad'}]},
    {'name': 'Mark', 'values': [{'value': 'Excellent'}, {'value': 'Very good'}]}
]

用一行列表推导式完成转换:

converted_list = [
    {'name': item['name'], 'values': [v['value'] for v in item['values']]}
    for item in original_list
]

解释:遍历原始列表中的每个字典item,保留name字段不变,同时把item['values']里的每个小字典提取出value值,组成新的字符串列表赋值给values字段。

方法二:for循环(直观易懂)

如果觉得列表推导式有点抽象,用普通循环一步步处理更清晰:

original_list = [
    {'name': 'Jon', 'values': [{'value': 'Decent'}, {'value': 'Average'}]},
    {'name': 'grunion', 'values': [{'value': 'Junk'}, {'value': 'Bad'}]},
    {'name': 'Mark', 'values': [{'value': 'Excellent'}, {'value': 'Very good'}]}
]

converted_list = []
# 遍历原始列表的每个元素
for item in original_list:
    # 创建新字典,先复制name字段
    new_item = {'name': item['name']}
    # 处理values字段,逐个提取value值
    new_values = []
    for v in item['values']:
        new_values.append(v['value'])
    new_item['values'] = new_values
    # 将处理好的字典加入新列表
    converted_list.append(new_item)

执行完上述代码后,converted_list就是你想要的目标结构,直接打印就能看到结果。

内容的提问来源于stack exchange,提问作者Istiyak Shaikh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:03:14