在Python中创建多处理列表的更快方法



如果我的代码通过使用多处理变得更快,我想试试。

问题是我的函数将有多个参数,所以我找到的解决方案是创建一个列表列表。这是最快的路吗?有没有比我的while循环更好的方法?

这是我的代码:

def add(a, b, c):
x = a + b + c
print(x)

CPUS = multiprocessing.cpu_count()
WORKERS = multiprocessing.Pool(processes=CPUS)
Tasklist1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Tasklist2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Tasklist3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
a = []
i = 0
while i < len(Tasklist1):
a.append([Tasklist1[i], Tasklist2[i], Tasklist3[i]])
i += 1

WORKERS.starmap(add, a)

我还不是MultiProcessing的用户,但您可以使用zip来完成此操作。

list1 = [i for i in range(10000)]
list2 = [i for i in range(10000)]
list3 = [i for i in range(10000)]
result = [(i+j+k) for i,j,k in zip(list1,list2,list3)]
%timeit [(i+j+k) for i,j,k in zip(list1,list2,list3)]
1.23 ms ± 85.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

相关内容

  • 没有找到相关文章

最新更新