Дакле, радили сте са листом или низом у Питхон-у и вероватно сте покушали да га исечете. Али уместо очекиваног резултата, добијате грешку која каже „индекс листе ван опсега“. Без бриге, може се догодити свакоме.
Хајде да истражимо шта ова грешка значи, њен узрок и како да је уклонимо без даљег одлагања.
Шта значи грешка „индекс листе ван опсега“ у Питхон-у?
Када Питхон избаци грешку „индекс листе ван опсега“, то значи да сте покушали да исечете листу изван њеног последњег индекса.
Питхон идентификује сваку ставку на листи њеним индексом. А индекс листе почиње од нуле. На пример, када имате листу са пет ставки, њена прва ставка је на индексу нула, док је последња на четвртом индексу.
На пример, на листи од пет програмских језика:
Језици = ["Питхон", "Го", "ПХП", "Ц", "Перл"]
Индексирање за горњу листу је између нула и четири. Дакле, покушај да га исечете да бисте одштампали пету ставку као што је приказано у наставку даје грешку:
штампа (језици[5])
Излаз:
ИндекЕррор: индекс листе је ван опсега
У горњем примеру, Питхон покушава да тражи пети индекс на листи, а када не може да га пронађе, избацује грешку индекса листе. То је зато што је први елемент (Питхон) на индексу нула, док је последњи (Перл) на индексу четири.
То је основа грешке „индекс листе ван опсега“. Као што је речено, Питхон га баца кад год покушате да исечете листу изван њеног последњег индекса.
Како уклонити грешку „индекс листе ван опсега“ у Питхон-у
Дакле, како можете уклонити ову грешку? То је лако.
Поред претходног одељка изнад, можете одштампати индексе користећи а запетља у разумевању листе:
индекси = [језици.индекс (и) за и на језицима]
штампа (индекси)
Излаз:
[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
Излаз:
ИндекЕррор: индекс листе је ван опсега
Горњи код даје грешку индекса јер је дужина листе пет, и покушава да почне индексирање са пет на нулу, док је највиши индекс четири. Дакле, то значи да листа нема пети индекс (шеста ставка).
Набавите креативне листе за руковање у Питхон-у
Питхон-ове грешке су прилагођене људима и обично читљиве. То их увек чини следљивим у разумној мери.
Као што сте научили, уклањање грешке индекса листе ван опсега је прилично лако. Ако се суочите са овом грешком у својим будућим програмима, без обзира на то колико је листа сложена, можете применити концепте објашњене у овом посту да бисте решили проблем.
Будите слободни да будете креативни са сложеним листама. Можда бисте такође желели да научите како да сортирате листе у Питхон-у у слободно време да бисте боље разумели све то.
Листе са више типова података могу брзо да измакну контроли. Ево како да их сортирате помоћу Пајтона.
Реад Нект
- Програмирање
- Питхон
- Програмирање
- Савети за кодирање
Идову је страствен за све паметне технологије и продуктивност. У слободно време игра се са кодирањем и прелази на шаховску таблу када му је досадно, али такође воли да се с времена на време одвоји од рутине. Његова страст да људима покаже пут око модерне технологије мотивише га да пише више.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!
Кликните овде да бисте се претплатили