Python在while循环中合并字典

时间:2013-06-05 20:57:23

标签: python function dictionary

我有一个返回字典的函数part_func(x)。我想在while循环中运行该函数,该循环是另一个函数main_func()的一部分。

part_func(x)的结果如下:

{'age': 80, 'name': 'peter'}
{'age': 20, 'name': 'stefan'}

我想从main_func()这样的字典中得到一个回复​​:

{'age': [80, 20], 'name': ['peter', 'stefan']}

以下代码完成了这项工作:

dicts1 = dict1, dict2
dicts2 = {k:[d.get(k) for d in dicts1] for k in {k for d in dicts1 for k in d}}

我现在的问题是,如何将其实现到main_func()

def part_func(x):
    # produces dicitionary

def main_func():
    for x in range(10):
       return part_func(x) # returns dictionary

2 个答案:

答案 0 :(得分:4)

我宁愿使用这样的东西:

def main_func():
    final_d = {}
    for _ in range(10):
        for key, val in part_func().items():
            final_d.setdefault(key, []).append(val)
    return final_d

答案 1 :(得分:2)

可以试试这个

def part_func(x):
    # produces dicitionary

def main_func():
    res = {}
    for x in range(10):
        for k,v in part_func(x).iteritems():
            res.setdefault(k, []).append(v)
    return  res