दिलचस्प पोस्ट
बिग एंडियन और थोड़ा एंडियन बाइट ऑर्डर के बीच अंतर हमें एंड्रॉइड में फ़ॉन्ट आकार के लिए एसपी का इस्तेमाल क्यों करना चाहिए? आर में ग्लोबल वैरिएबल कैसे jQuery डेटाटेबल पुनः लोड / ताज़ा करें? एक ही कॉलम में एकाधिक दिनांक प्रारूप कैसे परिवर्तित करें उच्च आयामी डेटा में निकटतम पड़ोसियों? आइकन पर Google क्रोम एक्सटेंशन नंबर मैं अलर्टडायलोग शीर्षक का रंग और उसके नीचे की रेखा का रंग कैसे बदल सकता / सकती हूं? क्या जावा एक ऑब्जेक्ट को अंतिम रूप दे सकता है जब यह अभी भी क्षेत्र में है? एओडब्लूएस लोस्टिक बीनस्टॉक, एक क्रोनबोज चलाना मैं श में स्ट्रिंग में एक नई लाइन कैसे कर सकता हूं? इंटरफ़ेस बिल्डर में गलत रंग मैं पर्यावरण के चर के जरिए जावा की न्यूनतम और अधिकतम आकार का आकार कैसे निर्धारित करूं? नीला बूँद भंडारण फ़ाइलों से एक ज़िप फ़ाइल उत्पन्न लिनक्स में परिभाषित PATH_MAX कहां है?

अनुक्रमणिका त्रुटि: सीमा से बाहर सूची असाइनमेंट सूची

कृपया निम्नलिखित कोड पर विचार करें:

i = [1, 2, 3, 5, 8, 13] j = [] k = 0 for l in i: j[k] = l k += 1 print j 

आउटपुट (Win 7 32-bit पर Python 2.6.6) है:

 > Traceback (most recent call last): > j[k] = l IndexError: list assignment index out of range 

मुझे लगता है कि यह कुछ सरल है जिसे मैं समझ नहीं पाया। क्या कोई इसे साफ़ कर सकता है?

Solutions Collecting From Web of "अनुक्रमणिका त्रुटि: सीमा से बाहर सूची असाइनमेंट सूची"

j एक खाली सूची है, लेकिन आप पहले पुनरावृत्ति में तत्व [0] पर लिखने का प्रयास कर रहे हैं, जो अभी तक मौजूद नहीं है।

इसके बजाय निम्नलिखित की कोशिश करें, सूची के अंत में एक नया तत्व जोड़ने के लिए:

 for l in i: j.append(l) 

आपका दूसरा विकल्प j शुरू करना है:

 j = [None]*max(i) 

j[k] = l j.append(l) j[k] = l बजाय j[k] = l j.append(l) करो और k से बचें।

आपके द्वारा पोस्ट किए गए उदाहरण के लिए, आप सूची की समझ भी इस्तेमाल कर सकते हैं:

 j = [l for l in i] 

या बस एक प्रति बनाओ:

 j = i[:] 
 j.append(l) 

इसके अलावा लोअर-केस "एल" का उपयोग करने से बचें क्योंकि 1 के साथ उनके लिए भ्रमित होना आसान है

मुझे लगता है कि अजगर विधि डालें जो आप की तलाश में हैं;

स्थिति i पर स्थित तत्व x सम्मिलित करता है I

 array = [1,2,3,4,5] array.insert(1,2) print array # prints [2,2,3,4,5] 

एक और तरीका:

 j=i[0] for k in range(1,len(i)): j = numpy.vstack([j,i[k]]) 

इस मामले में j एक संकीर्ण सरणी होगा

आप j के लिए एक शब्दकोश (एक साहचर्य सरणी के समान) का उपयोग कर सकते हैं

 i = [1, 2, 3, 5, 8, 13] j = {} #initiate as dictionary k = 0 for l in i: j[k] = l k += 1 print j 

प्रिंट होगा:

 {0: 1, 1: 2, 2: 3, 3: 5, 4: 8, 5: 13}