【问题标题】:Parallelize a dictionary comprehension in python在python中并行化字典理解
【发布时间】:2014-03-05 02:37:18
【问题描述】:

假设我有一个看起来像的字典理解

grid = {z: g for (z,g) in grid.iteritems() if abs(next(g)) < 2}

并行化此操作的最 Pythonic 方式是什么?默认情况下,python 实现会并行化吗?我是否必须求助于使用诸如多处理模块之类的功能而不是理解?

【问题讨论】:

    标签: python concurrency parallel-processing


    【解决方案1】:

    我会使用 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)))})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 2013-01-08
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 2020-10-19
      相关资源
      最近更新 更多