我需要一种方法来创建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}}
答案 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