2015-11-02 105 views
0

我需要一种方法来创建n维词典。如何在词典内部创建词典...在字典里面创建字典...'n'times

基本上,每个字典有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

确实[这](HTTP://计算器。 com/q/33424811/198633)有帮助吗? – inspectorG4dget

+0

请您详细说明。并且可以通过一个简单的例子来说明你需要什么? – EngineeredBrain

+0

在文章中加入 – felipe31

回答

0

遍地执行此doint_it()

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