Переписать для l oop в multiprocess.Pool (). Map - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь добиться того, что это для l oop делает только с функцией multiprocessing.Pool().map.

# for loop
List = [0, 0, 0, 0, 0]
numbers = range(5)
for i in numbers:
    List[i] = 1
print(List)

Вывод:

[1, 1, 1, 1, 1]

Когда я пытаюсь отобразить их числа для multiprocessing:

import multiprocessing as mp
from functools import partial


def function(numbers, List):
    List[numbers] = 1
    return List

def function_pool(numbers, List):
    func_part = partial(function, List=List)
    result = mp.Pool().map(func_part, numbers)
    return result

if __name__ == '__main__':

    # pool function
    List = [0, 0, 0, 0, 0]
    numbers = range(5)
    result = function_pool(numbers, List)
    print(result)

вывод:

[[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]]

Должен ли я впоследствии нарезать список вне пула, или для этого есть встроенный метод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...