Loop through all nested dictionary values?

前端 未结 12 1387
温柔的废话
温柔的废话 2020-11-22 09:16
for k, v in d.iteritems():
    if type(v) is dict:
        for t, c in v.iteritems():
            print \"{0} : {1}\".format(t, c)

I\'m trying to l

12条回答
  •  庸人自扰
    2020-11-22 09:42

    Iterative solution as an alternative:

    def traverse_nested_dict(d):
        iters = [d.iteritems()]
    
        while iters:
            it = iters.pop()
            try:
                k, v = it.next()
            except StopIteration:
                continue
    
            iters.append(it)
    
            if isinstance(v, dict):
                iters.append(v.iteritems())
            else:
                yield k, v
    
    
    d = {"a": 1, "b": 2, "c": {"d": 3, "e": {"f": 4}}}
    for k, v in traverse_nested_dict(d):
        print k, v
    

提交回复
热议问题