Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन IndexError: tuple index out of range समाधान

सूचियों की तरह, पायथन टपल्स इंडेक्स्ड होते हैं। इसका अर्थ है कि टपल में प्रत्येक मान का एक नंबर होता है जिसका उपयोग आप उस मान तक पहुंचने के लिए कर सकते हैं। जब आप एक टपल में किसी ऐसे आइटम तक पहुंचने का प्रयास करते हैं जो मौजूद नहीं है, तो पायथन एक त्रुटि लौटाता है जो कहता है "tuple index out of range"।

इस गाइड में, हम बताते हैं कि इस सामान्य पायथन त्रुटि का क्या अर्थ है और यह क्यों उठाई जाती है। हम इस समस्या के साथ एक उदाहरण परिदृश्य के माध्यम से चलते हैं ताकि हम यह पता लगा सकें कि इसे कैसे हल किया जाए।

समस्या विश्लेषण: IndexError: tuple index out of range

टपल्स 0 से शुरू होने वाले इंडेक्स हैं। टपल में प्रत्येक बाद का मान एक नंबर असाइन किया जाता है जो पिछले से एक अधिक होता है। एक टपल पर नज़र डालें:

birds = ("Robin", "Collared Dove", "Great Tit", "Goldfinch", "Chaffinch")

इस टपल में पांच मान हैं। प्रत्येक मान का अपना इंडेक्स नंबर है:

Robin Collared Dove Great Tit Goldfinch Chaffinch
0 1 2 3 4

हमारे टपल में "Robin" मान तक पहुंचने के लिए, हम इस कोड का उपयोग करेंगे:

print(birds[0])

हमारा कोड लौटाता है: Robin। हम इंडेक्स पोजीशन 1 पर मान को एक्सेस करते हैं और इसे कंसोल पर प्रिंट करते हैं। हम इसे अपनी सूची में किसी भी मान के साथ कर सकते थे।

यदि हम किसी ऐसे आइटम तक पहुंचने का प्रयास करते हैं जो हमारे टपल के बाहर है, तो एक त्रुटि उठाई जाएगी।

एक उदाहरण परिदृश्य

आइए एक प्रोग्राम लिखते हैं जो टपल में अंतिम तीन मान प्रिंट करता है। हमारा टपल यूनाइटेड किंगडम के शहरों की सूची समाहित करता है। आइए एक टपल घोषित करके शुरू करते हैं:

cities = ("Edinburgh", "London", "Southend", "Bristol", "Cambridge")

अगला, हम अंतिम तीन मान प्रिंट करते हैं। हम इसे एक for लूप और एक range() स्टेटमेंट का उपयोग करके करेंगे। range() स्टेटमेंट संख्याओं की एक सूची बनाता है एक विशेष रेंज के बीच ताकि हम अपनी सूची में उन आइटम पर इटरेट कर सकें जिनके इंडेक्स नंबर उस रेंज में हैं।

यहां हमारे for लूप का कोड है:

for i in range(3, 6):
    print(birds[i])

आइए अपना कोड चलाने का प्रयास करते हैं:

Goldfinch
Chaffinch
Traceback (most recent call last):
File "main.py", line 4, in 
    print(birds[i])
IndexError: tuple index out of range

हमारा कोड Goldfinch और Chaffinch मान प्रिंट करता है। ये हमारी सूची में अंतिम दो मान हैं। यह तीसरा मान प्रिंट नहीं करता है।

समाधान

हमारा range() स्टेटमेंट 3 और 6 की रेंज के बीच संख्याओं की एक सूची बनाता है। यह सूची 3 को सम्मिलित करती है और 6 को बाहर करती है। हमारी सूची केवल 4 तक इंडेक्स्ड है। इसका अर्थ है कि हमारा लूप हमारे टपल में इंडेक्स पोजीशन 5 पर एक पक्षी तक पहुंचने का प्रयास करेगा क्योंकि 5 हमारी रेंज में है।

आइए देखते हैं कि क्या होता है यदि हम व्यक्तिगत रूप से birds[5] प्रिंट करने का प्रयास करते हैं:

print(birds[5])

हमारा कोड लौटाता है:

Traceback (most recent call last):
File "main.py", line 3, in 
    print(birds[5])
IndexError: tuple index out of range

वही त्रुटि मौजूद है। ऐसा इसलिए है क्योंकि हम अपनी सूची में आइटम तक पहुंचने का प्रयास करते हैं जैसे कि वे 1 से इंडेक्स्ड हैं। टपल्स 0 से इंडेक्स्ड हैं।

इस त्रुटि को हल करने के लिए, हमें अपने range() स्टेटमेंट को संशोधित करने की आवश्यकता है ताकि यह केवल हमारे टपल में अंतिम तीन आइटम प्रिंट करे। हमारी रेंज 2 से 5 तक जानी चाहिए:

for i in range(2, 5):
    print(birds[i])

आइए अपना संशोधित कोड चलाते हैं और देखते हैं कि क्या होता है:

Great Tit
Goldfinch
Chaffinch

हमारा कोड सफलतापूर्वक हमारी सूची में अंतिम तीन आइटम प्रिंट करता है। हम अब इंडेक्स पोजीशन 2, 3, और 4 पर आइटम एक्सेस कर रहे हैं। ये सभी पोजीशन वैध हैं इसलिए हमारा कोड अब काम करता है।

निष्कर्ष

IndexError: tuple index out of range त्रुटि तब होती है जब आप एक टपल में किसी ऐसे आइटम तक पहुंचने का प्रयास करते हैं जो मौजूद नहीं है। इस समस्या को हल करने के लिए, सुनिश्चित करें कि जब भी आप टपल से किसी आइटम तक पहुंचते हैं तो वह आइटम मौजूद हो जिसे आप ढूंढ रहे हैं।

इस त्रुटि का सबसे आम कारण यह भूल जाना है कि टपल्स 0 से इंडेक्स्ड हैं। जब आप टपल से किसी मान तक पहुंचने का प्रयास कर रहे हों तो 0 से गिनना शुरू करें। एक शुरुआतकर्ता के रूप में, यह अजीब लग सकता है। जैसे-जैसे आप पायथन में कोडिंग में अधिक समय बिताते हैं, 0 से गिनना दूसरी प्रकृति बन जाएगा।

अब आप इस पायथन त्रुटि को एक विशेषज्ञ की तरह हल करने के लिए तैयार हैं!

  1. - पायथन टुपल से आइटम कैसे हटाएं?

    पायथन में टुपल इम्म्यूटेबल हैं। यदि आप पायथन टुपल से आइटम हटाना चाहते हैं, तो आप किसी विशेष इंडेक्स को छोड़ने के लिए इंडेक्स स्लाइसिंग का उपयोग कर सकते हैं। उदाहरण के लिए: a = (1, 2, 3, 4, 5) b = a[:2] + a[3:] print(b) यह आउटपुट देगा: (1, 2, 4, 5) या आप इसे लिस्ट में कन्वर्ट कर सकते हैं, आइटम हटा स

  1. - पायथन में टपल को इंडेक्स और स्लाइस कैसे करें?

    टपल को इंडेक्स या स्लाइस करने के लिए आपको टपल पर [] ऑपरेटर का उपयोग करना होगा। टपल को इंडेक्स करते समय, यदि आप पॉजिटिव इंटीजर प्रदान करते हैं, तो यह टपल से बाएं से गिनती करते हुए उस इंडेक्स को लाता है। नेगेटिव इंडेक्स के मामले में, यह टपल से दाएं से गिनती करते हुए उस इंडेक्स को लाता है। उदाहरण my_

  1. - पायथन में सबस्ट्रिंग स्लाइसिंग इंडेक्स आउट ऑफ रेंज क्यों काम करता है?

    किसी अनुक्रम (कम से कम बिल्ट-इन्स के लिए) की सीमाओं के बाहर स्लाइसिंग करने से त्रुटि नहीं होती। इंडेक्सिंग एक आइटम लौटाता है, लेकिन स्लाइसिंग आइटम्स का एक उप-अनुक्रम लौटाता है। इसलिए जब आप एक गैर-मौजूद मान को इंडेक्स करने का प्रयास करते हैं, तो लौटाने के लिए कुछ नहीं होता; लेकिन जब आप सीमाओं के बाहर