相关疑难解决方法(0)

拆分python字典以产生所有值的组合

my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}
Run Code Online (Sandbox Code Playgroud)

我需要从中得出所有组合,如下所示.

{'a':1, 'b':3, 'c':{'d':4, 'e':6}}
{'a':1, 'b':3, 'c':{'d':4, 'e':7}}
{'a':1, 'b':3, 'c':{'d':5, 'e':6}}
{'a':1, 'b':3, 'c':{'d':5, 'e':7}}
{'a':2, 'b':3, 'c':{'d':4, 'e':6}}
Run Code Online (Sandbox Code Playgroud)

等等.可以有任何级别的嵌套在这里
请让我知道如何实现这个
我试过的东西贴在下面但绝对无处可到

def gen_combinations(data):
    my_list =[]
    if isinstance(data, dict):
        for k, v in data.iteritems():
            if isinstance(v, dict):
                gen_combinations(v)
            elif isinstance(v, list):
                for i in range(len(v)):
                    temp_dict = data.copy()
                    temp_dict[k] = v[i]
                    print temp_dict

my_dict = {'a':[1,2], 'b':[3], 'c':{'d':[4,5], 'e':[6,7]}}

gen_combinations(my_dict)
Run Code Online (Sandbox Code Playgroud)

结果导致了

{'a': 1, 'c': {'e': [6, 7], 'd': [4, 5]}, 'b': [3]} …
Run Code Online (Sandbox Code Playgroud)

python dictionary

7
推荐指数
1
解决办法
190
查看次数

标签 统计

dictionary ×1

python ×1