मैं एक जनरेटर समारोह है और यह से पहले दस आइटम प्राप्त करना चाहते हैं के एक सबसेट हो जाओ; मेरा पहला प्रयास था:एक जनरेटर
my_generator()[:10]
यह काम नहीं करता है क्योंकि जनरेटर सबस्क्रिप्ट करने योग्य नहीं हैं, क्योंकि त्रुटि मुझे बताती है। अभी मैंने इसके साथ काम किया है:
list(my_generator())[:10]
यह काम करता है क्योंकि यह जेनरेटर को एक सूची में परिवर्तित करता है; हालांकि, यह एक जनरेटर होने के बिंदु को अक्षम और पराजित करता है। क्या जेनरेटर के लिए [:10]
के कुछ अंतर्निहित, पायथनिक समकक्ष हैं?
वास्तव में उपयोग करें: itertools.islice (mygenerator(), 10) – Martlark
@martlark: Uhm, कोई नेड सही संस्करण था। – SilentGhost
@SilentGhost अच्छी तरह से, जब मैंने कोशिश की तो मुझे यह त्रुटि मिली: आयात itertools def sumUp(): x = 20; z = 0 रेंज में y के लिए (x + 1): z + = 1 उपज z itertools.islice में जेड के लिए (sumUp, 5): प्रिंट z Traceback (सबसे हाल कॉल पिछले): फ़ाइल "C: \ Data \ कोड \ Febrl \ src \ z.py", लाइन 9, itertools.islice में z के लिए में (sumUp, 5): लेखन त्रुटि: 'समारोह' वस्तु iterable नहीं है अजगर 2.6 –
Martlark