以下是一个示例代码,用于并行创建一个嵌套字典:
from multiprocessing import Pool
def create_nested_dict(key):
nested_dict = {'key': key, 'value': key * 2}
return nested_dict
if __name__ == '__main__':
keys = [1, 2, 3, 4, 5]
with Pool(processes=len(keys)) as pool:
results = pool.map(create_nested_dict, keys)
nested_dict = {}
for result in results:
nested_dict[result['key']] = result['value']
print(nested_dict)
在这个示例中,我们首先定义了一个函数create_nested_dict
,它接受一个键值作为参数,并返回一个嵌套字典。然后,我们创建一个包含键的列表keys
。
接下来,我们使用multiprocessing.Pool
创建一个进程池,进程池的大小为键的数量。然后,我们使用pool.map
函数并行地调用create_nested_dict
函数,将每个键作为参数传递给它。pool.map
函数将返回一个包含所有结果的列表results
。
最后,我们使用一个循环遍历results
列表,并将每个嵌套字典添加到最终的嵌套字典nested_dict
中。最终,我们打印出nested_dict
。
请注意,在使用multiprocessing.Pool
时,我们需要将代码放在if __name__ == '__main__':
条件下。这是为了避免在Windows系统中出现RuntimeError
。
下一篇:并行处理-合并结果