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

如何高效将含列表值的字典转换为字典列表

更高效的字典转字典列表实现方式

嘿,这个需求其实有非常简洁且通用的实现方式,完全不用手动创建多个独立字典再逐个追加,咱们可以利用Python内置的zip()函数来搞定!

思路解析

你的核心需求是把原字典中每个键对应的列表元素,按位置一一对应组合成新的字典。这里的关键是把所有值列表的对应位置元素打包,再和原字典的键配对生成新字典。

实现代码

d = {'n': ['a', 'b', 'x'], 'a': [1, 2, 3], 'p': ['123', '321', '456']}

# 提取原字典的所有键
keys = d.keys()
# 将所有值列表按位置打包,每个包对应一组要组合的元素
value_groups = zip(*d.values())
# 用列表推导式生成最终的字典列表
result = [dict(zip(keys, group)) for group in value_groups]

print(result)

这段代码运行后会直接输出你想要的结果:

[{'n': 'a', 'a': 1, 'p': '123'}, {'n': 'b', 'a': 2, 'p': '321'}, {'n': 'x', 'a': 3, 'p': '456'}]

为什么这个方法更好?

  • 通用性强:不管原字典有多少个键,只要每个值列表的长度一致,这段代码都能正常工作,不像你原来的写法只能固定处理3个元素的情况。
  • 代码简洁高效:用内置函数和列表推导式替代手动创建多个字典,代码更易读,执行效率也更高。
  • 可维护性高:后续如果原字典的结构有变化(比如新增键或值列表长度改变),不需要修改核心逻辑,代码依然能适配。

内容的提问来源于stack exchange,提问作者Iiilfiej Omsbwb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 18:37:50