多处理结果列表

ZL

我想让我的多重处理结果列出2,我该怎么做。我在下面尝试过,但只得到最后一个列表。

def multiply(x, y):
  return x * x, x * y

#use wrap
def multiply_wrapper(args):
  return multiply(*args)

#use wrap
if __name__ == "__main__":
  list_x = []
  list_y = []

  p = Pool(4)
  values = [(x, y) for x in range(4) for y in range(4)]
  results = p.map(multiply_wrapper, values)
  
  list_x.append(results[0][0])
  list_y.append(results[0][1])

  print(list_x)
  print(list_y)


  
拉兹尔·沙兹(Razzle Shazl)

我尝试了一些小的更改就尝试了您的代码,results看起来还可以。

您是否可能期望多处理根据哪个工作人员处理了数据块而使数据分离?幸运的是,它为我们加入了数据。

以下内容是由文档和您的原始问题启发而来的另外,不要忘记释放资源,因为垃圾收集器不会为您执行此操作。

from multiprocessing.pool import Pool
import pprint

def multiply(x, y):
  return x * x, x * y

#use wrap
def multiply_wrapper(args):
  return multiply(*args)

#use wrap
if __name__ == "__main__":
  p = Pool(4)
  values = [(x, y) for x in range(4) for y in range(4)]
  results = p.map(multiply_wrapper, values)
  p.close()
  p.join()
  pprint.pprint(results)

输出:

[(0, 0),
 (0, 0),
 (0, 0),
 (0, 0),
 (1, 0),
 (1, 1),
 (1, 2),
 (1, 3),
 (4, 0),
 (4, 2),
 (4, 4),
 (4, 6),
 (9, 0),
 (9, 3),
 (9, 6),
 (9, 9)]

回复评论:

要从的输出中获取2个列表Pool.map,我们可以将结果解压缩。

if __name__ == "__main__":
    p = Pool(4)
    values = [(x, y) for x in range(4) for y in range(4)]
    results = p.map(multiply_wrapper, values)
    p.close()
    p.join()

    list_x = [x[0] for x in results]
    list_y = [x[1] for x in results]
    pprint.pprint(list_x)
    pprint.pprint(list_y)

输出:

[0, 0, 0, 0, 1, 1, 1, 1, 4, 4, 4, 4, 9, 9, 9, 9]
[0, 0, 0, 0, 0, 1, 2, 3, 0, 2, 4, 6, 0, 3, 6, 9]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python中多处理后的后处理结果

来自分类Dev

Python 2.7多处理无需使用缓冲池即可获得处理结果

来自分类Dev

多处理池:显示准备好的未处理结果的数量

来自分类Dev

GooglePlus登录处理结果

来自分类Dev

linux命令的处理结果

来自分类Dev

Android-Loopj取消处理结果

来自分类Dev

多核多线程处理结果怪异

来自分类Dev

如何从forkJoin返回处理结果

来自分类Dev

来自 ReactiveX Observable 的批处理结果

来自分类Dev

共享列表的多处理

来自分类Dev

多处理列表搜索

来自分类Dev

Python多处理获得结果

来自分类Dev

Python 多处理:提取结果

来自分类Dev

等待承诺完成,然后再处理结果

来自分类Dev

使用jQuery的POST表单并处理结果

来自分类Dev

Libreoffice headless处理结果未返回,但等待超时

来自分类Dev

Java和Matlab的不同图像处理结果

来自分类Dev

执行多个Windows cmd命令并存储处理结果

来自分类Dev

T-SQL:处理结果周期并按组计数

来自分类Dev

返回处理结果后无法触发取消按钮操作

来自分类Dev

来自Java和Matlab的不同图像处理结果

来自分类Dev

根据行数选择文件并处理结果

来自分类Dev

使用SIGSTOP停止的服务请求的处理结果

来自分类Dev

chkrootkit给出了未找到的处理结果tty

来自分类Dev

从exe捕获处理结果(右键单击上下文)

来自分类Dev

以编程方式进行Google搜索并处理结果

来自分类Dev

NodeJS 查询处理结果设计模式避免嵌套 then 语句

来自分类Dev

在 forEach 循环中运行 sequelize 查询。无法处理结果

来自分类Dev

多处理代码未显示期望的结果