फैलती है मैं पॉप -11 से pdtolist के पाइथन समकक्ष कैसे बना सकता हूं?गतिशील सूची जो स्वचालित रूप से
मान लें कि मेरे पास जी नामक जनरेटर है जो एक समय में एक पूर्णांक (कहता है) पूर्ण करता है। मैं एक सूची एक बनाना चाहता हूं जो स्वचालित रूप से बढ़ता है क्योंकि मैं सूची के वर्तमान छोर से परे मूल्यों के लिए पूछता हूं। उदाहरण के लिए:
print a # => [ 0, 1, 2, g]
print a[0] # => 0
print a[1] # => 1
print a[2] # => 2
# (obvious enough up to here)
print a[6] # => 6
print a # => [ 0, 1, 2, 3, 4, 5, 6, g]
# list has automatically expanded
a = a[4:] # discard some previous values
print a # => [ 4, 5, 6, g]
print a[0] # => 4
शब्दावली - एक संभावना गलतफहमी का अनुमान लगाने की: एक सूची एक "गतिशील सरणी" है, लेकिन है कि मैं क्या मतलब नहीं है; मुझे एक और अधिक अमूर्त भावना में "गतिशील सूची" चाहिए।
प्रेरणा बेहतर समझाने के लिए, मान लीजिए कि आपके पास प्रक्रिया के लिए 99 99 99 999 आइटम हैं। उन सभी को स्मृति में (सामान्य सूची में) फिट करने की कोशिश करना एक बार में एक चुनौती होगी। एक जनरेटर एक समय में उन्हें पेश करके समस्या का वह हिस्सा हल करता है; प्रत्येक व्यक्ति मांग पर बनाया या डिस्क से व्यक्तिगत रूप से पढ़ा। लेकिन प्रसंस्करण के दौरान आप कुछ हाल के मूल्यों को संदर्भित करना चाहते हैं, न सिर्फ वर्तमान? आप एक अलग सूची में अंतिम (कहना) दस मान याद कर सकते हैं। लेकिन एक गतिशील सूची बेहतर है, क्योंकि यह उन्हें स्वचालित रूप से याद करती है।
'इंडेक्स एरर' को पकड़ने के लिए सूची की '__getitem__' विधि को ओवरराइड करें। –
तो आपके पास सूची 'एल' है और' एल [99 99 99 999] 'प्रदर्शन करती है - सूची उस लंबाई बननी चाहिए? –
हां, सिद्धांत रूप में। चेतावनी प्रोग्रामर! –