我想要一个输入是这样的函数:
my_dict = {
'foo':[1,2,3]
'bar': [True, False]
}
输出是:
results = {
'foo':[1, 1, 2, 2, 3, 3]
'bar': [True, False, True, False, True, False]
}
上下文:我正在为机器学习编写自己的“交叉验证”函数。所以我需要展平所有参数来提供我的模型。我事先不知道有多少参数,也没有它们的名字。所以我需要解析输入字典。
我觉得我让它变得比需要的更复杂,所以这就是我寻求帮助的原因。也许一个函数已经存在,即使我没有找到它。
感谢您的帮助!
请您参考如下方法:
下面是一个简单的方法
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]}
