python Пул отображает несколько аргументов - список и переменную в качестве входных данных - PullRequest
1 голос
/ 19 марта 2020

Я хотел бы мультипроцессировать функцию (см. Ниже)

def func(c):
    time =  time
    list = [c, time]
    another_func(list)

Я запускаю эту вышеупомянутую функцию следующим образом:

p = multiprocess.Pool()
p.map(func, cust, chunksize=1)
p.close()
p.join()

cust - это список строк типа

cust = ['c1', 'c2', ...]

Теперь мой вопрос, возможно ли получить переменную времени в p.map как

p.map(func, cust, time, chunksize=1) 

Я искал несколько тем здесь, но я не нашел подходящую топи c.

Спасибо за любую помощь / подсказки!

1 Ответ

1 голос
/ 19 марта 2020

вы можете использовать starmap :

def func(c, time):
    my_list = [c, time]
    another_func(my_list)


p.starmap(func, [(c, time) for c in cust], chunksize=1) 

, даже лучше:

p.map(another_func, [[c, time] for c in cust], chunksize=1) 
...