如何通过多个列表中的python多处理

问题描述 投票:-1回答:1

在多处理如何将多个列表传递给函数,这里是我的示例代码

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,五,菠萝

python-3.x multiprocessing
1个回答
0
投票

有两个不同的问题。

首先,你要实际调用unzip_all_data地方。这是一个错字和pool.map(unzip_all_data,data)应改为书面pool.map(unzip_all_data(data))

现在,你调用该函数,它将打印的东西在你想要的订单,但没有回报,因为你的函数没有return。您需要添加一个,但没有更多的信息,我不知道你希望返回那里。

© www.soinside.com 2019 - 2024. All rights reserved.