如何使用两个相同的键和不同的值从 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 方法进行比较,结果证明前者要快得多:

import numpy as np
import pandas as pd
keys = ['testname', 'output']

value1 = list(np.random.choice(['pizza', 'dog', 'lion'], 100_000))
value2 = list(map(str, np.round(np.random.random(100_000) * 1000, 1)))

%timeit {"Labresult": [dict(zip(keys, pair)) for pair in zip(value1, value2)]}
# 56 ms ± 1.8 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

df = pd.DataFrame({"testname": value1, "output": value2})
%timeit {"Labresult": df.apply(dict, axis=1).tolist()}
# 1.1 s ± 50.1 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中具有相同键的两个不同字典中组合值

合并两个字典列表以在 python 中创建第三个

如何在 Python3 上从三个列表中创建两个列表

在Python中组合三个不同的列表

使用Python中的单个键合并两个不同长度的字典列表

Python Pandas:使用三个不同的值在数据框中创建一列

从Python列表中选择三个不同的值

如何允许来自两个不同列表的重复值进入python中的字典

如何在迭代三个匹配单词的列表后创建 Python 字典

使用python 3中的链接列表进行三个(或更多)不同变量分配的操作顺序

如何从字典列表中创建三个单独的值列表,其中每个词典都有三个键

Python比较三个不同长度的列表

Python 3.x:合并两个具有相同键和值的字典

如何检查和删除python中两个不同目录中不相同的文件?

如何比较python中两个值是否相同但情况不同

如何枚举两个键中的字典值并使用 Python 输出 txt 文件中的值?

加入两个具有相同值和不同键的字典列表

Python-如何使用具有一个键和两个值的循环更新字典?

如何从(相同长度和相同键的)两个不同字典的值制作新字典,用作键值对

如何在Python 3中检查两个不同列表中的相同项目?

在Python中合并三个字典

根据条件在python中具有不同值范围的三个列表中选择最佳索引

当两个键的值相同时,从python字典中删除一个项目

如何在python中使用相同的键组合(附加值)两个嵌套字典?

尝试在python django中使用不同的键映射两个对应的值

如何在python中合并两个具有相同键和数组类型值的嵌套字典?

如何在python中的字典中具有两个键和一个值

根据相同的值但键名不同(例如SQL的JOIN)联接两个Python字典

当一个键在 python 中应该有两个值时,创建一个包含两个列表的字典