Python使用进程池Pool并行计算并输出m行n列二维列表中每行的和。
时间: 2024-04-29 09:25:44 浏览: 95
下面是一种Python使用进程池Pool并行计算并输出m行n列二维列表中每行的和的实现方式:
```python
import multiprocessing
def calculate_row_sum(row):
return sum(row)
if __name__ == '__main__':
m = 5
n = 3
data = [[i*j for i in range(n)] for j in range(m)] # 生成二维列表
with multiprocessing.Pool() as pool:
row_sums = pool.map(calculate_row_sum, data)
for i, row_sum in enumerate(row_sums):
print('Row {}: {}'.format(i, row_sum))
```
这个示例代码中,我们首先定义了一个`calculate_row_sum`函数,它接收一个列表作为参数,并返回这个列表的和。接着我们生成了一个$m$行$n$列的二维列表`data`,其中每个元素都是它所在的行数和列数的乘积。
然后我们使用`multiprocessing.Pool`创建了一个进程池,并使用`pool.map`方法将`data`中的每一行作为参数传递给`calculate_row_sum`函数,让它们在不同的进程中并行计算。得到的结果是一个长度为$m$的列表`row_sums`,其中每个元素是对应行的和。
最后我们使用`enumerate`函数来遍历`row_sums`列表并输出每行的和。
阅读全文