Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在while循环中合并字典_Python_Function_Dictionary - Fatal编程技术网

Python在while循环中合并字典

Python在while循环中合并字典,python,function,dictionary,Python,Function,Dictionary,我有一个返回字典的函数part\u func(x)。我想在另一个函数main\u func()的while循环中运行该函数 部分函数(x)的结果如下所示: {'age': 80, 'name': 'peter'} {'age': 20, 'name': 'stefan'} {'age': [80, 20], 'name': ['peter', 'stefan']} def main_func(): final_d = {} for _ in range(10):

我有一个返回字典的函数
part\u func(x)
。我想在另一个函数
main\u func()
的while循环中运行该函数

部分函数(x)
的结果如下所示:

{'age': 80, 'name': 'peter'}
{'age': 20, 'name': 'stefan'}
{'age': [80, 20], 'name': ['peter', 'stefan']}
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
我想从
main\u func()
中得到一个类似这样的字典:

{'age': 80, 'name': 'peter'}
{'age': 20, 'name': 'stefan'}
{'age': [80, 20], 'name': ['peter', 'stefan']}
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
以下代码执行该任务:

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()
中实现这一点


我宁愿用这样的东西:

{'age': 80, 'name': 'peter'}
{'age': 20, 'name': 'stefan'}
{'age': [80, 20], 'name': ['peter', 'stefan']}
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

我宁愿用这样的东西:

{'age': 80, 'name': 'peter'}
{'age': 20, 'name': 'stefan'}
{'age': [80, 20], 'name': ['peter', 'stefan']}
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
我可以试试这个

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
我可以试试这个

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

首先,只需对范围(10)中的x使用
,并去掉
x=0
x+=1
。第二,如果你每次都要通过循环
返回part_func(x)
,你只会通过一次循环,那么…你到底想做什么呢?首先,只需对范围(10)
中的x使用
,去掉
x=0
x+=1
。第二,如果你每次都要通过循环返回part_func(x)
,那么你只需要通过一次循环,那么…你到底想在这里做什么?part_func(x).iteritems()和
part_func().items()
之间有什么区别不在内存中创建列表只在项目上迭代而
items()
创建列表(这是在python 2.x中)在
part\u func(x).iteritems()
part\u func().items()
之间有什么区别?
items()
不在内存中创建列表只在
items()时迭代项目
create list(在python 2.x中)