繁体   English   中英

Python中2个字典的组合

[英]combinations of 2 dict in python

大家好 我有2个字典,例如:

dict_in = {
    'a1': {'b': [1, 2], 'c': [4, 5]}, 
    'a2': {'b': [6, 7], 'c': [8, 10]}
}

我想获得所有可能不重复的组合的输出,例如:

res_dict = [   
   {'a1': {b: 1, c: 4}, 'a2': {'b': 6, 'c': 8}},
   {'a1': {b: 2, c: 4}, 'a2': {'b': 6, 'c': 8}},
   {'a1': {b: 1, c: 5}, 'a2': {'b': 6, 'c':8}},
   {'a1': {b: 1, c: 5}, 'a2': {'b': 6, 'c':8}},
   {'a1': {b: 2, c: 5}, 'a2': {'b': 6, 'c':8}},
   {'a1': {b: 1, c: 4}, 'a2': {'b': 7, 'c':8}},
   {'a1': {b: 1, c: 4}, 'a2': {'b': 7, 'c':10}},
   ....

在哪里有建议?

所以,我找到了解决方案:

import itertools as it

dict_comb = {i : itertools.product(*dict_in[i].values()) for i in dict_in.keys()}
keys = dict_comb.keys()
final_dict = itertools.product(* [ dict_comb[key] for key in keys])

暂无
暂无

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

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