जनरेटर नहीं क्यों निम्नलिखित पायथन कोड एक त्रुटि
TypeError: type object argument after * must be a sequence, not generator
उठाना पड़ता अगर मैं टिप्पणी करते हुए जनरेटर च में पहली (बेकार) लाइन, सब कुछ ठीक काम करता है?लेखन त्रुटि: * के बाद प्रकार वस्तु तर्क एक दृश्य होना चाहिए,
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)
एनबी। मैं वास्तव में क्या करने की कोशिश कर रहा हूं, एक जनरेटर के साथ, एकाधिक इटरेटर्स लौटाएं (जितना मैं जनरेटर को तर्क के रूप में पास करूंगा)। ऐसा करने का एकमात्र तरीका यह है कि ट्यूपल्स पैदा करना और उन पर izip() का उपयोग करना - मेरे लिए काला जादू।
आप 'मिल सकती है दिलचस्प itertools से tee' ... – Tathagata
' के माध्यम से चलाने के लिए और इससे पहले कि यह इटरेटर नकल कर सकते हैं एक बार सभी तत्वों को संग्रहीत करने के लिए tee', cf दस्तावेज़: https://docs.python.org/3.1/library/itertools.html#itertools.tee। दुर्भाग्यवश कोई जादू नहीं है, और मेरा प्रयास यहां बेवकूफ था। – JulienD