Вызовите функцию с 3 параметрами для запуска всех комбинаций. - PullRequest
0 голосов
/ 25 марта 2020

У меня есть функция multirun, которую я хочу запустить. Имеет 3 параметра. Я хочу передать ему список чисел для каждого параметра, и я хочу, чтобы он проходил через все комбинации. ie: для функции multirun(a,b,c) у меня есть

a = [1,2]
b=[3,4]
c=[5,6]

, и я хочу, чтобы он запустил все (1,3,5), (1,3,6) (1,4,5), (1,4,6) (2,3,5) et c ... Ниже у меня есть действительный код:

CO2 = [0.00007, 0.00008, 0.00009]
H2O = [0.00003, 0.000035, 0.00004]
FO2 = [-2,-1,0,1,2]


for i in CO2:
    for j in H2O:
        for k in FO2:
            multirun( WTCO2_START = [i], WTH2O_START = [j], FO2_buffer_START= [k])

Кажется, это не так. Что я должен изменить?

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

попробуйте так:

for i in CO2:
    for j in H2O:
        for k in FO2:
            multirun(i, j, k)
0 голосов
/ 25 марта 2020

itertools.product должен делать именно то, что вы хотите. Я думаю, что это сработает для вас:

import itertools
for i, j, k in itertools.product(CO2, H20, FO2):
    multirun(WTCO2_START = [i], WTH2O_START = [j], FO2_buffer_START= [k])

Возможно, вам придется поиграться с параметром повтора, но это должно быть легче определить.

...