В целях обучения я пытаюсь выполнить функцию с использованием Python, которая принимает в качестве другой функцию и два массива в качестве параметров и вызывает параметр функции для каждого индекса каждого параметра массива. Поэтому это должно вызывать add a1 [0] & a2 [0], a1 [1] & a2 [1] и т. Д. Но все, что я возвращаю, является объектом-генератором. Что не так?Python, как сделать функцию, которая принимает функцию в качестве аргумента вместе с двумя массивами?
def add(a,b):
yield a + b
def generator(add,a1,a2):
for i in range(len(a1)):
yield add(a1[i],a2[i])
g = generator(add,a1,a2)
print g.next()
Я также попытался заменить то, что у меня есть на доходность выше
yield map(add,a1[i],a2[i])
Но это работает, даже меньше. Я получаю это:
TypeError: argument 2 to map() must support iteration
выход дает объект-генератор, похоже, у вас есть генератор генератора, возможно, вы просто хотите вернуть сумму из add? – dm03514
У вас уже есть ответ, но вы также можете просто сделать 'map (add, a, b)' или '(i + j для i, j в zip (a, b))' –