我有一个字典列表,例如
因此,对于这个输入,结果将如下所示:
{'a': [1, 2, 3], 'b': [5, 6, 7, 8]}
。实际数据中可能有多个键/值对。我想要显示一个详尽的字典列表,每行一个字典,其中每个字典都具有相同的键,并且每个值都是从相应的原始列表中选择的元素。因此,对于这个输入,结果将如下所示:
{'a': 1, 'b': 5}
{'a': 1, 'b': 6}
...
{'a': 3, 'b': 8}
输出总共有3 * 4 = 12行。
对于硬编码的关键字,我可以做到这一点:
for a, b in itertools.product(*p.itervalues()):
print({'a':a, 'b':b})
然而,对于真实数据,我不一定提前知道键名,并且可能有未知数量的键值对。
我应该如何修改代码,使其无论键名如何,都可以从itertools.product
生成所需的字典?