python - 如何在 Python 中使用多重处理来划分字典的迭代?

标签 python queue multiprocessing pool

我有一个项目要读取数百万行输入,然后在一个非常大的字典上运行计算。我之前已经在程序的一些 IO 部分实现了池/队列技术。但是,有没有办法使用多处理来划分标准:

对于 xdictionary.iteritems() 中的 i:

谢谢!

最佳答案

您可以使用imap:

import multiprocessing
import os

def f(key_value):
    print "pid={}, key={}, value={}".format(os.getpid(), *key_value)

pool = multiprocessing.Pool(2)
for _ in pool.imap(f, {1:2, 3:4, 5:6, 7:8}.iteritems()):
    pass

输出:

pid=1689, key=1, value=2
pid=1689, key=3, value=4
pid=1689, key=5, value=6
pid=1690, key=7, value=8

关于python - 如何在 Python 中使用多重处理来划分字典的迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26568002/

相关文章:

运行有限或无限生成器函数时出现 Python3 错误

python - 如何在 DataFrame 中将单词与数字相乘?

linux - bash中间接引用数组的访问范围

java - ArrayDeque 和 LinkedBlockingDeque

node.js - 异步队列永远不会随机触发耗尽

python - 启动具有输入参数的另一个脚本的多个实例的脚本

python - 将 Python 的多处理模块与 cvxopt 包一起使用

python - 命令提示符中的“等待”动画 (Python)

python - python多处理中的动态工作池管理

python - 如何使用 RegEx 加速 Apache 日志的解析以扩展 Pandas 数据框?