У меня есть функция, которая принимает два аргумента. Я хочу запустить функцию для каждой возможной комбинации моих входов и сохранить каждое возвращаемое значение. Например:Python вызывает функцию много раз с разными аргументами
def foo(a, b):
return (a + b)
if __name__ == "__main__":
a = np.array([1., 2., 3.])
b = np.array([5., 6.])
f1 = foo(a[0], b[0]) #6
f2 = foo(a[0], b[1]) #7
f3 = foo(a[1], b[0]) #etc
f4 = foo(a[1], b[1])
f5 = foo(a[2], b[0])
f6 = foo(a[2], b[1])
Как я могу назвать f1 через f6 более элегантным способом, как цикл? Это не может быть прямой цикл, потому что a и b имеют различное количество элементов.
Посмотрите на 'itertools.product'. – jonrsharpe
См. Http://stackoverflow.com/questions/1919044/is-there-a-better-way-to-iterate-over-two-lists-getting-one-element-from-each-l – jarmod
Вложенные в петли? – haifzhan