如何使用iterables将dict“扩展”为Python中的dict列表

如何使用iterables将dict“扩展”为Python中的dict列表,python,functional-programming,Python,Functional Programming,例如,我有一个 { "key1":[1,2,3], "key2":[1,2] } 我想把它改成 [{"key1":1, "key2":1},{"key1":1, "key2":2},{"key1":2, "key2":1}...] 我通过使用eval实现了这一点,我认为递归也有帮助。但是有更好的解决方案吗?那么您可以通过eval实现这一点,您的解决方案是什么?递归总是有帮助的:P@metatoaster基本上使用{a:b,c:d}。。。对于d中的b[a]对于d中的d['c']

例如,我有一个

{
    "key1":[1,2,3],
    "key2":[1,2]
}
我想把它改成

[{"key1":1, "key2":1},{"key1":1, "key2":2},{"key1":2, "key2":1}...]

我通过使用eval实现了这一点,我认为递归也有帮助。但是有更好的解决方案吗?

那么您可以通过eval实现这一点,您的解决方案是什么?递归总是有帮助的:P@metatoaster基本上使用{a:b,c:d}。。。对于d中的b[a]对于d中的d['c']@jonrsharpe抱歉,只生产了一把钥匙。未订购任何钥匙!你不能保证i是键1,j是键2。更好地使用productd[key1],d[key2]@tobias_k将其更改为使用手动从键获取值
d = {
    "key1":[1,2,3],
    "key2":[1,2]
}
from itertools import product
[{'key1':i,'key2':j}  for i,j in product(d['key1'],d['key2'])]


[{'key1': 1, 'key2': 1}, {'key1': 1, 'key2': 2}, {'key1': 2, 'key2': 1}, {'key1': 2, 'key2': 2}, {'key1': 3, 'key2': 1}, {'key1': 3, 'key2': 2}]