Я пытаюсь добиться того, что это для 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]]
Должен ли я впоследствии нарезать список вне пула, или для этого есть встроенный метод?