有可能在python中并行创建dict吗



我实际上有这段代码来创建dict.

import multiprocessing
cpus = multiprocessing.cpu_count()
pool = multiprocessing.Pool(processes=cpus)
items = data['id'].unique()
def compute_weight(item):
return sum(data[data['id'] == item])
weights = pool.map(compute_weight, items)
my_dict = {k, v for k, v in zip(items, weights)}

我的问题是:有没有一种方法可以通过多处理直接创建字典?

没有,但您不需要循环。

使用

my_dict = dict(zip(items, weights))

这应该快得多,因为它将环路向下推到C级(在CPython的情况下(

最新更新