并行化python中的字典理解

时间:2014-03-05 02:37:19

标签: python concurrency parallel-processing

假设我有一个类似

的词典理解
grid = {z: g for (z,g) in grid.iteritems() if abs(next(g)) < 2}

并行化此操作的最pythonic方法是什么? python实现默认会并行化吗?我是否不得不求助于使用类似多处理模块的功能而不是理解?

1 个答案:

答案 0 :(得分:0)

我会使用multiprocessing.Pool,

python3.3中的示例,一个方块最大为10000的字典:

>>> import multiprocessing
>>> def square(num):
...     return num**2
...
>>> with multiprocessing.Pool(processes=multiprocessing.cpu_count()) as executor:
...     print({num:sqr for num, sqr in zip(range(1,10001), executor.map(square, range(1,10001)))})
相关问题