Почему следующий код Python вызывает ошибку?
TypeError: type object argument after * must be a sequence, not generator
в то время как если я прокомментирую первую (бесполезную) линию в генераторе f, все будет хорошо работать?
from itertools import izip
def z():
for _ in range(10):
yield _
def f(z):
for _ in z: pass # if I comment this line it works! (??)
for x in range(10):
yield (x,10*x,100*x,1000*x)
iterators = izip(*f(z))
for it in iterators:
print list(it)
N.B. То, что я на самом деле пытаюсь сделать, - с одним генератором - возвращать несколько итераторов (столько, сколько я передам генератору в качестве аргументов). Единственный способ, которым я нашел это, - это получить кортежи и использовать izip() для них - черную магию для меня.