Да, это очень хороший генератор. Вы уверены, что add
это хорошее название для него?
zip
поможет вам написать это более кратко
def add(a1, a2):
for i,j in zip(a1, a2):
yield i*j
Вы также можете встроить генератор в качестве выражения генератора
(i*j for i,j in zip(a1, a2))
Если вы используете Python2, вы должны использовать itertools.izip
вместо zip
, потому что zip
не ленив в Python2