我正在处理一个问题,我想用如下所示的值来平铺python dict
[
{'a': [1,2,3,4], 'b':[0,9,8], 'c': 'row1'},
{'x': [1,2,3,4], 'y':[0,9,8], 'z': 'row2'}
]
像这样的
[
{'a':1, 'b': 0, 'c': 'row1'},
{'a':1, 'b': 9, 'c': 'row1'},
{'a':1, 'b': 8, 'c': 'row1'},
{'a':2, 'b': 0, 'c': 'row1'},
{'a':2, 'b': 9, 'c': 'row1'},
{'a':2, 'b': 8, 'c': 'row1'},
{'a':3, 'b': 0, 'c': 'row1'},
{'a':3, 'b': 9, 'c': 'row1'},
{'a':3, 'b': 8, 'c': 'row1'},
{'a':4, 'b': 0, 'c': 'row1'},
{'a':4, 'b': 9, 'c': 'row1'},
{'a':4, 'b': 8, 'c': 'row1'},
{'x':1, 'y': 0, 'z': 'row2'},
{'x':1, 'y': 9, 'z': 'row2'},
{'x':1, 'y': 8, 'z': 'row2'},
{'x':2, 'y': 0, 'z': 'row2'},
{'x':2, 'y': 9, 'z': 'row2'},
{'x':2, 'y': 8, 'z': 'row2'},
{'x':3, 'y': 0, 'z': 'row2'},
{'x':3, 'y': 9, 'z': 'row2'},
{'x':3, 'y': 8, 'z': 'row2'},
{'x':4, 'y': 0, 'z': 'row2'},
{'x':4, 'y': 9, 'z': 'row2'},
{'x':4, 'y': 8, 'z': 'row2'},
]
我试过用熊猫来压平口述,但没有什么建设性的结果。我一直在想其他的办法
下面是一个工作实现,它首先检查哪些字典条目是列表,使用
itertools.product
从这些列表计算值组合,并为每个组合生成字典:输出:
您可以使用
itertools.product
在dict项上生成笛卡尔积(给定变量l
中的输入列表):这将返回:
相关问题 更多 >
编程相关推荐