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

如何让Python字典的值以列表[]而非元组()包裹?技术咨询

解决Python字典值为列表而非元组的问题

没问题!你遇到的情况是因为zip(*values)返回的是元组迭代器,所以当你用dict(zip(keys, ...))构建字典时,值默认会是元组类型。要让值变成列表,只需要把每个zip生成的元组转换成列表就可以了。

修改后的代码示例

第一种写法(用生成器表达式,内存更高效):

keys = ["field1", "field2", "field3"]
values = [[1,2,3], [3,4,5], [6,7,8]]
dictionary = dict(zip(keys, (list(item) for item in zip(*values))))

第二种写法(用列表推导式,更直观):

keys = ["field1", "field2", "field3"]
values = [[1,2,3], [3,4,5], [6,7,8]]
dictionary = dict(zip(keys, [list(item) for item in zip(*values)]))

原理说明

zip(*values)的作用是把values里的子列表按索引位置“打包”:

  • 原values是[[1,2,3], [3,4,5], [6,7,8]]
  • zip(*values)会生成三个元组:(1,3,6)、(2,4,7)、(3,5,8)

我们通过list(item)把每个元组转换成列表,这样最终字典的值就会是你期望的[]包裹的列表类型了。

运行后得到的结果就是:

{'field1': [1, 3, 6], 'field2': [2, 4, 7], 'field3': [3, 5, 8]}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:36