First an observation. You have:
numbers = []
for i in range(100):
numbers.append(i)
This is using a loop to create a list with values 0, 1, 2 ... 99. But you could have just as easily and more efficiently specified:
numbers = list(range(100))
But in fact the iterable argument being passed to the Pool.map method doesn't need to be a list (it will, however, be automatically converted to a list if it does not support the __len__ method). So instead of creating the numbers list, you could have simply passed instead range(100) as the iterable argument to the map call. Now on to the question at hand:
The Pool.map method returns a list of all the return values from calling the worker function (add_one in this case). So you just need to have add_one return the value it wants appended to the new list:
from multiprocessing import Pool
def add_one(number):
return number + 1
process_pool = Pool(2)
new_numbers = process_pool.map(add_one, range(100))
print(new_numbers)
Prints:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]