如果我有一个必须为字典中的嵌套字典执行的函数。那我该怎么执行呢?
例如:
# I have the below dictionary
d = {'a':1, 'b':2, 'c':3, 'd': {'e':4, 'f':5}}
# I wanted a result as below
{'a': 1, 'b': 2, 'c': 3, 'e': 4, 'f': 5}
#I have executed it by
for i, j in d.items():
if type(j) == dict:
for key,value in d[i].items():
d[key] = value
d.pop(i, None)
print d
#output
{'a': 1, 'c': 3, 'b': 2, 'e': 4, 'f': 5}
但是如果有很多嵌套字典怎么办?我对此感到困惑?有什么建议吗?
提前致谢。
答案 0 :(得分:3)
我认为这是一种扁平形式:
d
第一个函数弹出d
中的每个字典,然后用它们更新flatten
。第二个函数应用{{1}}第一个函数,而有一个值是字典。
答案 1 :(得分:2)
dd={}
def myprint(d):
for k, v in d.iteritems():
if isinstance(v, dict):
myprint(v)
else:
dd.update({k:v})
return dd
d={'a':1, 'b':2, 'c':3, 'd': {'e':4, 'f':5,'g':{'h':6}}}
print(myprint(d))
输出 - {'a':1,'c':3,'b':2,'e':4,'f':5,'h':6}