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中)