لذلك كنت تعمل مع قائمة أو مصفوفة في بايثون وربما حاولت تقسيمها. ولكن بدلاً من النتيجة المتوقعة ، تحصل على خطأ مفاده "فهرس القائمة خارج النطاق." لا تقلق ، يمكن أن يحدث لأي شخص.

دعنا نستكشف ما يعنيه هذا الخطأ وسببه وكيفية إزالته دون مزيد من اللغط.

ماذا يعني خطأ "فهرس القائمة خارج النطاق" في بايثون؟

عندما يطرح Python خطأ "قائمة فهرس خارج النطاق" ، فهذا يعني أنك حاولت تقسيم القائمة إلى ما بعد فهرسها الأخير.

تحدد Python كل عنصر في قائمة من خلال فهرسها. ويبدأ فهرس القائمة من الصفر. على سبيل المثال ، عندما يكون لديك قائمة تحتوي على خمسة عناصر ، يكون العنصر الأول فيها على الفهرس صفر ، بينما يكون العنصر الأخير في الفهرس الرابع.

على سبيل المثال ، في قائمة من خمس لغات برمجة:

اللغات = ["Python" ، "Go" ، "PHP" ، "C" ، "Perl"]

تتراوح قيمة فهرسة القائمة أعلاه بين صفر وأربعة. لذا فإن محاولة تقسيمه لطباعة العنصر الخامس كما هو موضح أدناه يعطي خطأ:

طباعة (لغات [5])
انتاج |:
خطأ في الفهرس: فهرس القائمة خارج النطاق

في المثال أعلاه ، تحاول Python البحث عن الفهرس الخامس في القائمة ، وعندما لا تتمكن من العثور عليه ، فإنها تُلقي بالخطأ في فهرس القائمة. ذلك لأن العنصر الأول (Python) موجود في الفهرس صفر ، بينما العنصر الأخير (Perl) موجود في الفهرس الرابع.

instagram viewer

هذا هو أساس خطأ "قائمة الفهرس خارج النطاق". كما قيل ، تقوم Python برميها كلما حاولت تقسيم قائمة خارج فهرسها الأخير.

كيفية إزالة خطأ "قائمة الفهرس خارج النطاق" في بايثون

فكيف يمكنك إزالة هذا الخطأ؟ من السهل.

بالإضافة إلى القسم السابق أعلاه ، يمكنك طباعة الفهارس باستخدام ملف بالنسبةحلقة في قائمة الفهم:

الفهارس = [languages.index (i) لـ i في اللغات]
طباعة (فهارس)
انتاج |:
[0, 1, 2, 3, 4]

فهرس القائمة هو أساس التقطيع في البرمجة. لذلك بما أنك تعرف أعلى فهرس في القائمة للإخراج أعلاه (4) ، يمكنك فك شفرة حد الشريحة.

ومن ثم ، لتقسيم القائمة والحصول على العنصر الأخير:

طباعة (لغات [4])
انتاج |:
بيرل

الآن هو إخراج النتيجة الصحيحة.

ماذا لو كنت تريد تكرار القائمة باستخدام فهرسها؟

بالإضافة إلى النظامية بايثون للحلقة، يمكنك أيضًا استخدام مفهوم الفهرس للتكرار خلال القائمة. في حين أن هذه الطريقة قد تبدو شاقة ، إلا أنها في بعض الأحيان لا مفر منها. على سبيل المثال ، يكون مفيدًا إذا كنت تريد فرز قائمة بترتيب عكسي.

تعمل هذه الطريقة عن طريق تعيين فهرس أولي وزيادته أو إنقاصه بواحد حتى آخر فهرس متاح.

لطباعة العناصر برقم فهرس متزايد (من الأول إلى العنصر الأخير) ، على سبيل المثال:

الفهرس = 0 # الفهرس الأولي
بالنسبة لي في اللغات:
طباعة (اللغات [الفهرس])
الفهرس + = 1
انتاج |:
بايثون
اذهب
بي أتش بي
ج
بيرل

ولكن ماذا يحدث إذا قمت بتعيين الفهرس الأولي على واحد بدلاً من الصفر؟ الق نظرة:

الفهرس = 1 # الفهرس الأولي
بالنسبة لي في اللغات:
طباعة (اللغات [الفهرس])
الفهرس + = 1
انتاج |:
اذهب
بي أتش بي
ج
بيرل
خطأ في الفهرس: فهرس القائمة خارج النطاق

في المثال أعلاه ، تبدأ الفهرسة من العنصر الثاني (فهرس واحد ، اذهب). لذلك أثناء الزيادة ، لا تتوقف الحلقة حتى تكمل العد للعناصر الخمسة. هذا يفرض على الفهرس زيادة بمقدار واحد حتى العنصر الأخير.

وبالتالي ، تصل الشريحة إلى فهرس خامس غير متوفر. لذلك يلقي خطأ في الفهرس. يعني أن الفهرس يزداد بالنمط التالي لكل عنصر:

1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5 

بدلاً من النمط الصحيح ، وهو:

0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4

كما ترى ، أعلى قيمة للفهرس أعلاه هي أربعة ، وهذا صحيح لأن الحلقة تبدأ في زيادة الفهرسة من الصفر.

لذلك ، يؤدي تعيين الفهرس الأولي إلى صفر كما فعلت في المثال الأول في هذا القسم إلى إزالة الخطأ "خارج فهرس القائمة":

الفهرس = 0 # الفهرس الأولي
بالنسبة لي في اللغات:
طباعة (اللغات [الفهرس])
الفهرس + = 1 # زيادة الفهرس بواحد لكل تكرار

لتطبيق هذا المفهوم لإخراج العناصر بترتيب عكسي ، ستحتاج إلى طرح واحد من طول المصفوفة. وهذا يفرض على الفهرس أن يبدأ من أربعة وأن يعد تنازليًا حتى الفهرس الأول ، صفر.

هذا مفيد إذا لم تكن متأكدًا من قيمة طول القائمة القادمة من مصدر ، على سبيل المثال ، قاعدة بيانات.

هذا مثال:

الفهرس = (لين (اللغات] -1)
بالنسبة لي في اللغات:
طباعة (اللغات [الفهرس])
الفهرس - = 1 # قلل الفهرس بواحد لكل تكرار
انتاج |:
بيرل
ج
بي أتش بي
اذهب
بايثون

ولكن الفشل في طرح واحد من طول القائمة يؤدي إلى ظهور الخطأ "خارج فهرس القائمة":

الفهرس = (لين (اللغات] -1)
بالنسبة لي في اللغات:
طباعة (اللغات [الفهرس])
الفهرس - = 1
انتاج |:
خطأ في الفهرس: فهرس القائمة خارج النطاق

يلقي الرمز أعلاه خطأ فهرس لأن طول القائمة خمسة ، ويحاول بدء الفهرسة لأسفل من خمسة إلى صفر ، في حين أن أعلى مؤشر هو أربعة. هذا يعني أن القائمة لا تحتوي على فهرس خامس (العنصر السادس).

احصل على قوائم معالجة إبداعية في Python

أخطاء Python صديقة للإنسان ويمكن قراءتها عادةً. وهذا يجعلها دائمًا قابلة للتتبع إلى حد معقول.

كما تعلمت ، فإن إزالة خطأ فهرس القائمة خارج النطاق أمر سهل للغاية. إذا واجهت هذا الخطأ في برامجك المستقبلية ، بغض النظر عن مدى تعقيد القائمة ، يمكنك تطبيق المفاهيم الموضحة في هذا المنشور لحل المشكلة.

لا تتردد في الإبداع مع القوائم المعقدة. قد ترغب أيضًا في معرفة كيفية فرز القوائم في Python في وقت فراغك للحصول على تعليق أفضل لكل شيء.

كيفية فرز أي نوع من القوائم تقريبًا في Python

يمكن أن تخرج القوائم التي تحتوي على أنواع بيانات متعددة عن السيطرة بسرعة. إليك كيفية فرزها باستخدام Python.

اقرأ التالي

يشاركسقسقةبريد الالكتروني
مواضيع ذات صلة
  • برمجة
  • بايثون
  • برمجة
  • نصائح الترميز
عن المؤلف
إيدوو أوميسولا (تم نشر 136 مقالاً)

إن Idowu شغوف بأي شيء يتعلق بالتقنيات الذكية والإنتاجية. في أوقات فراغه ، يلعب بالبرمجة ويتحول إلى رقعة الشطرنج عندما يشعر بالملل ، لكنه أيضًا يحب الابتعاد عن الروتين بين الحين والآخر. يحفزه شغفه بإظهار طريقة حول التكنولوجيا الحديثة للناس على كتابة المزيد.

المزيد من Idowu Omisola

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك