Iterables पर iteration (2)
इस चैप्टर में आपने यह सीखा कि हर iterable असल लिस्ट नहीं होती। जिन उदाहरणों पर हमने बात की, उनमें strings और range() फंक्शन शामिल हैं। इस अभ्यास में हम range() फंक्शन पर ध्यान देंगे।
आप range() को for लूप में ऐसे इस्तेमाल कर सकते हैं मानो यह एक लिस्ट हो जिस पर iterate किया जा रहा है:
for i in range(5):
print(i)
ध्यान दें कि range() वास्तव में लिस्ट नहीं बनाता; यह एक range ऑब्जेक्ट बनाता है, जिसके साथ एक iterator होता है जो लिमिट तक वैल्यूज़ पैदा करता रहता है (इस उदाहरण में, वैल्यू 4 तक)। अगर range() असली लिस्ट बनाता, तो उसे \(10^{100}\) जैसी वैल्यू के साथ कॉल करना काम न भी करे, खासकर क्योंकि इतना बड़ा नंबर एक सामान्य कंप्यूटर की मेमोरी से बाहर हो सकता है। वैल्यू \(10^{100}\) को वास्तव में Googol कहा जाता है, जो 1 के बाद सौ 0 होते हैं। यह एक बहुत ही बड़ा नंबर है!
इस अभ्यास में आपका काम यह दिखाना है कि range() को \(10^{100}\) के साथ कॉल करने पर यह पहले से लिस्ट नहीं बनाता।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python टूलबॉक्स
अभ्यास निर्देश
iter()फंक्शन का उपयोग करकेrange(3)पर एक iterator ऑब्जेक्टsmall_valueबनाइए।forलूप का उपयोग करते हुएrange(3)पर iterate कीजिए और हर iteration में वैल्यू प्रिंट कीजिए। लूप वैरिएबल के रूप मेंnumका उपयोग करें।range(10 ** 100)पर एक iterator ऑब्जेक्टgoogolबनाइए।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Create an iterator for range(3): small_value
small_value = ____
# Print the values in small_value
print(next(small_value))
print(next(small_value))
print(next(small_value))
# Loop over range(3) and print the values
# Create an iterator for range(10 ** 100): googol
googol = ____
# Print the first 5 values from googol
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))
print(next(googol))