我实际上有这段代码来创建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的情况下(