Python字典迭代嵌套字典以获取特定操作/函数

时间:2017-04-05 04:19:28

标签: python dictionary

如果我有一个必须为字典中的嵌套字典执行的函数。那我该怎么执行呢?

例如:

# 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}

但是如果有很多嵌套字典怎么办?我对此感到困惑?有什么建议吗?

提前致谢。

2 个答案:

答案 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}