1

我有一个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
4

2 回答 2

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
于 2013-06-05T21:02:13.880 回答
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
于 2013-06-05T21:03:37.090 回答