Python在while循环中合并字典

2024-05-16 22:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个返回字典的函数part_func(x)。我想在另一个函数main_func()的while循环中运行该函数。你知道吗

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

Tags: 函数nameinforage字典maindef
1条回答
网友
1楼 · 发布于 2024-05-16 22:22:16

我宁愿用这样的东西:

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
网友
2楼 · 发布于 2024-05-16 22:22:16

我可以试试这个

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

相关问题 更多 >