我有一个返回字典的函数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
答案 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