सूचियों की तरह, पायथन टपल्स इंडेक्स्ड होते हैं। इसका अर्थ है कि टपल में प्रत्येक मान का एक नंबर होता है जिसका उपयोग आप उस मान तक पहुंचने के लिए कर सकते हैं। जब आप एक टपल में किसी ऐसे आइटम तक पहुंचने का प्रयास करते हैं जो मौजूद नहीं है, तो पायथन एक त्रुटि लौटाता है जो कहता है "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, inprint(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, inprint(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 से गिनना दूसरी प्रकृति बन जाएगा।
अब आप इस पायथन त्रुटि को एक विशेषज्ञ की तरह हल करने के लिए तैयार हैं!