如何在词典里面,词典里面创建词典......' n'时

时间:2015-11-02 06:40:19

标签: python loops dictionary nested iteration

我需要一种方法来创建n维词典。

基本上,每个字典包含4个键,值为1或2。

我需要创建一个字典,检查它是否为1或2.并在这个新创建的字典中执行此操作,再次' n'倍。这是基本代码:

dic1 = {'a': 1, 'b': 2, 'c': 1, 'd': 1}
dic2 = {'a': 1, 'b': 2, 'c': 1, 'd': 2}
dic0 = {'a': 2}

def doing_it(dic):
    new_mod = {}
    for keys in dic:
        if dic[keys] == 1:
            new_mod[keys] = dic1
        if dic[keys] == 2:
            new_mod[keys] = dic2
    return new_mod

doing_it(dic0)

我需要的例子:

dic1 = {'a': 1, 'b': 2, 'c': 1, 'd': 1} #default1
dic2 = {'a': 1, 'b': 2, 'c': 1, 'd': 2} #default2

dic0 = {'a': 1, 'b': 2, 'c': 1, 'd': 2} #My starting dictionary

#first iteration
dic01 = {'a': dic1, 'b': dic2, 'c': dic1, 'd': dic2}

#second iteration
dic02 = {'a': {'a': dic1, 'b': dic2, 'c': dic1, 'd': dic1}, 'b': {'a': dic1, 'b': dic2, 'c': dic1, 'd': dic2}, 'c': {'a': dic1, 'b': dic2, 'c': dic1, 'd': dic1}, 'd': {'a': dic1, 'b': dic2, 'c': dic1, 'd': dic2}}

1 个答案:

答案 0 :(得分:0)

一遍又一遍地执行此def doing_it(dic): new_mod = {} for i in sorted(dic.keys()): if dic[i] == 1: new_mod[i] = dic1 elif dic[i] == 2: new_mod[i] = dic2 else: new_mod[i] = doing_it(dic[i]) return new_mod

TableView