繁体   English   中英

从充满 arrays 的 Python 字典到代表所有组合的字典

[英]From a Python dict filled with arrays to a dict representing all combinations

我想要一个 function 的输入是这样的:

my_dict = {
    'foo':[1,2,3]
    'bar': [True, False]
}

output 是:

results = {
    'foo':[1, 1, 2, 2, 3, 3]
    'bar': [True, False, True, False, True, False]
}

背景:我正在为机器学习编写自己的“交叉验证”function。 所以我需要展平所有参数来提供我的 model。 我事先不知道有多少参数也没有它们的名字。 所以我需要解析输入字典。

我觉得我让它变得比需要的更复杂,所以这就是我寻求帮助的原因。 也许 function 已经存在,即使我没有找到它。

谢谢你的帮助!

一个简单的方法如下

import itertools

keys = list(my_dict.keys())
product = list(itertools.product(*list(my_dict.values())))
results = {keys[i]: [item[i] for item in product] for i in range(len(keys))}

这给出了你所追求的结果。

print(results)
{'foo': [1, 1, 2, 2, 3, 3], 'bar': [True, False, True, False, True, False]}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM