假设我有一个类似
的词典理解grid = {z: g for (z,g) in grid.iteritems() if abs(next(g)) < 2}
并行化此操作的最pythonic方法是什么? python实现默认会并行化吗?我是否不得不求助于使用类似多处理模块的功能而不是理解?
答案 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)))})