如何使用两个相同的键和不同的值从Python中的三个不同列表创建字典?

我有三个清单:

包含键的列表是:

keys = ['testname', 'output']

包含值的列表是:

value1 = ['pizza', 'dog', 'lion']
value2 = ['12.3', '356', '45.6']

我想要的输出是:

{
 "Labresult":[
    { 'testname': 'pizza',
       'output': '12.3',
    },
    
    { 'testname': 'dog',
      'output': '356,'
    },
    { 'testname': 'lion',
       'output': '45.6',
    }]
 }

我试过的:

dict(zip(key, zip(value1,value2)))

回答

好的开始,但您仍然需要对值进行循环:

{"Labresult": [dict(zip(keys, pair)) 
               for pair in zip(value1, value2)]}

附录

原则上,您也可以切换到基于 Pandas 的方法,例如,如果value1value2是 DataFrame 的列。但是,对于大量数据,问题的限制因素始终是您需要生成嵌套字典。将最初建议的方法与针对大量数据(无 for 循环)的潜在 Pandas 方法进行比较,结果证明前者要快得多:

{"Labresult": [dict(zip(keys, pair)) 
               for pair in zip(value1, value2)]}

如果您可以选择更改所需结果的形状/数据类型(例如,没有嵌套的字典),则可以进行改进。


以上是如何使用两个相同的键和不同的值从Python中的三个不同列表创建字典?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>