sparse assignment list in python -


मुझे निम्न व्यवहार के साथ एक सूची की आवश्यकता है

  & gt; & gt; & gt; L = स्पार्स लिस्ट ()> gt; & gt; & gt; एल []> gt; & gt; & gt; एल [2] = "हैलो"> gt; & gt; & gt; एल [कोई नहीं, कोई भी नहीं, "हैलो"]> gt; & gt; & gt; एल [5] कोई नहीं & gt; & gt; & gt; एल [4] = 22 & gt; & gt; & gt; एल [कोई नहीं, कोई नहीं, "हैलो", कोई नहीं, 22]> gt; & gt; & gt; लेन (एल) 5> gt; & gt; के लिए मैं में: प्रिंट I कोई नहीं कोई भी नहीं "हैलो" कोई नहीं 22  

हालांकि यह एक शब्दकोश के माध्यम से "अनुकरण" कर सकता है, यह बिल्कुल वही नहीं है अंडाकार सरणी इस तरह से व्यवहार कर सकती है, लेकिन मैं इस तरह से कुछ के लिए पूरे नलिका को आयात नहीं करना चाहता। इसे स्वयं कोडिंग करने से पहले, मैं पूछता हूं कि मानक लाइब्रेरी में कुछ समान मौजूद है या नहीं।

यहां पास न्यूनतम कोड है आपके दिए गए उदाहरण (अपरिहार्य समायोजन के साथ: आप अजीब रिक्ति और उद्धृत करते हैं, बिना किसी प्रिंट कथन, इत्यादि बिना 'कोई नहीं' मुद्रित होने की उम्मीद है):

  कक्षा स्पर्स लिस्ट (सूची): def __setitem __ (स्वयं, सूचकांक, मान): अनुपलब्ध = इंडेक्स - लेन (आत्म) + 1 यदि लापता & gt; 0: self.extend ([none] * missing) list .__ setitem __ (self, index, value) def __getitem __ (self, index): try: return list .__ getitem __ (self, index) को छोड़कर indexError: return कोई नहीं __test__ = dict एल्म = '' 'gt; & gt; एल = स्पार्स लिस्ट ()>> [[]>> gt; & gt; एल [2] = "हैलो"> gt; & gt; एल [कोई नहीं, कोई भी नहीं , 'हैलो']> gt; प्रिंट ल [5] कोई नहीं & gt; & gt; एल [4] = 22>> [[कोई नहीं, कोई नहीं, 'हैलो', कोई नहीं, 22] & gt; ; & Gt; लेन (एल) 5 & gt; & gt; & gt; मैं एल में: प्रिंट I कोई नहीं कोई नहीं हैलो कोई नहीं 22 '' ') आयात doctest doctest.testmod आयात करें (वर्बोज = 1)  

मुझे लगता है आप अधिक चाहते हैं (नकारात्मक सूचकांक, टुकड़ा करने की क्रिया, और जो कुछ भी समर्थन करने के लिए), लेकिन यह आपके सभी उदाहरणों में निहित हैं।


Comments

Popular posts from this blog

iphone - How do I make a UIPickerView in a UIActionSheet -

java - Is there an object like a "Set" that can contain only unique string values, but also contain a count on the number of occurrences of the string value? -