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

如何正确编写Python函数实现按指定key从字典列表提取值生成嵌套列表

问题根因

你的代码存在两个核心问题:

  • 没有为每个输入字典单独创建子列表,所有匹配到的值都直接追加到了外层列表lol中,最终只能得到一维结构
  • 三重循环的逻辑会按字典本身的key遍历顺序取值,无法严格保证输出顺序和第一个参数的key顺序完全一致,存在顺序错误隐患
  • 代码中定义的a、i变量没有实际作用,可以删除

修正后代码

易读版

def make_lists(s, lod):
    lol = []
    # 遍历每一个输入字典
    for x in lod:
        sub_list = []
        # 严格按第一个参数的key顺序取对应值
        for k in s:
            # 如果需要兼容字典缺失key的场景,可替换为x.get(k)
            sub_list.append(x[k])
        lol.append(sub_list)
    return lol

简化版(列表推导实现)

def make_lists(s, lod):
    return [[x[k] for k in s] for x in lod]

效果验证

调用示例2测试:

print(make_lists(['Hint', 'Num'],
           [{'Hint': 'Length 2 Not Required', 'Num' : 8675309},
            {'Num': 1, 'Hint' : 'Use 1st param order'}]
))

输出结果:

[['Length 2 Not Required', 8675309], ['Use 1st param order', 1]]

完全符合预期要求。

内容的提问来源于stack exchange,提问作者Anshul Dayavaan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:02