在多处理如何将多个列表传递给函数,这里是我的示例代码
import multiprocessing
def unzip_all_data(data):
for i in data:
index=i[0]
no=i[1]
item=i[2]
print(index,no,item)
if __name__ == '__main__':
pool_size = multiprocessing.cpu_count()
pool=multiprocessing.Pool(pool_size)
list1=[1,2,3,4,5]
list2=['one','two','three','four','five']
list3=['apple','orange','banana','grapes','pineapple']
all_data=zip(list1,list2,list3)
data=list(all_data)
pool.map(unzip_all_data,data)
pool.close()
pool.join()
我的预期成果是:
1,一,苹果
2,两个,橙
3,三,香蕉
4,四个,葡萄
5,五,菠萝
有两个不同的问题。
首先,你要实际调用unzip_all_data
地方。这是一个错字和pool.map(unzip_all_data,data)
应改为书面pool.map(unzip_all_data(data))
。
现在,你调用该函数,它将打印的东西在你想要的订单,但没有回报,因为你的函数没有return
。您需要添加一个,但没有更多的信息,我不知道你希望返回那里。