Tehát egy listával vagy tömbbel dolgozott Pythonban, és valószínűleg megpróbálta feldarabolni. De a várt eredmény helyett egy hibaüzenetet kap, amely azt mondja, hogy "index listázása a tartományon kívül esik". Ne aggódj, bárkivel megtörténhet.

Vizsgáljuk meg, mit jelent ez a hiba, mi az oka, és hogyan távolíthatjuk el minden további nélkül.

Mit jelent a „tartományon kívüli listaindex” hiba a Pythonban?

Amikor a Python "listaindex kívüli tartomány" hibát dob, az azt jelenti, hogy megpróbálta a listát az utolsó indexen túlra szeletelni.

A Python a lista minden elemét indexe alapján azonosítja. És egy lista indexe nulláról indul. Például, ha van egy listája öt elemből, az első elem a nulla indexen, míg az utolsó a negyedik indexen található.

Például egy öt programozási nyelvet tartalmazó listában:

Nyelvek = ["Python", "Go", "PHP", "C", "Perl"]

A fenti lista indexelése nulla és négy között van. Tehát az ötödik elem kinyomtatásához az alább bemutatott módon próbálja felszeletelni, hibát okoz:

nyomtatás (nyelvek[5])
Kimenet:
IndexError: a lista indexe tartományon kívül esik
instagram viewer

A fenti példában a Python megpróbálja megkeresni az ötödik indexet a listában, és ha nem találja, akkor listaindex hibát dob. Ennek az az oka, hogy az első elem (Python) a nulla indexen, míg az utolsó (Perl) a negyedik indexen van.

Ez az alapja a "listás index tartományon kívül" hiba. Ahogyan már említettük, a Python eldobja, amikor megpróbál egy listát az utolsó indexén túlra szeletelni.

Hogyan lehet eltávolítani a „tartományon kívüli listaindexet” a Pythonban

Tehát hogyan lehet eltávolítani ezt a hibát? Könnyű.

A fenti előző szakaszon túlmenően az indexeket a a segítségével nyomtathatja ki számárahurok a lista megértésében:

indexes = [languages.index (i) for i nyelveken]
nyomtatás (indexek)
Kimenet:
[0, 1, 2, 3, 4]

A programozásban a szeletelés alapja a lista indexe. Tehát mivel ismeri a lista legmagasabb indexét a fenti kimenethez (4), megfejtheti a szeletkorlátot.

Ezért a lista feldarabolásához és az utolsó elem lekéréséhez:

nyomtatás (nyelvek[4])
Kimenet:
Perl

Most a megfelelő eredményt adja ki.

Mi a teendő, ha a listán az index segítségével szeretne lépkedni?

A szokásos mellett Python for ciklus, használhatja az index fogalmát is a lista ismétlésére. Bár ez a módszer fáradságosnak tűnik, néha elkerülhetetlen. Hasznos lehet például, ha egy listát fordított sorrendben szeretne rendezni.

Ez a módszer úgy működik, hogy beállít egy kezdeti indexet, és eggyel növeli vagy csökkenti az utolsó elérhető indexig.

Növekvő indexszámú tételek nyomtatásához (az elsőtől az utolsóig), például:

index = 0 # Kezdeti index
nekem a nyelvekben:
nyomtatás (Nyelvek[index])
index +=1
Kimenet:
Piton
Megy
PHP
C
Perl

De mi történik, ha a kezdeti indexet nulla helyett egyre állítja? Nézd meg:

index = 1 # Kezdeti index
nekem a nyelvekben:
nyomtatás (Nyelvek[index])
index +=1
Kimenet:
Megy
PHP
C
Perl
IndexError: a lista indexe tartományon kívül esik

A fenti példában az indexelés a második elemtől kezdődik (első index, Megy). Tehát növelés közben a ciklus nem áll meg, amíg be nem fejezi az öt elem számlálását. Ez arra kényszeríti az indexet, hogy az utolsó elemig eggyel növekedjen.

Ezért a szelet eléri az ötödik indexet, amely nem elérhető. Tehát index hibát dob. Ez azt jelenti, hogy az index minden egyes tételnél a következő mintában nő:

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

A helyes minta helyett, ami:

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

Mint látható, a fenti index legmagasabb értéke négy, ami helyes, mivel a ciklus nulláról kezdi növelni az indexelést.

Ezért, ha a kezdeti indexet nullára állítja, ahogyan az ebben a szakaszban az első példában tette, eltávolítja a „listaindex tartományon kívül” hibát:

index = 0 # Kezdeti index
nekem a nyelvekben:
nyomtatás (Nyelvek[index])
index +=1 #Növelje az indexet eggyel minden iterációnál

Ha ezt a koncepciót alkalmazni szeretné az elemek fordított sorrendben történő kimenetére, le kell vonnia egyet a tömb hosszából. Tehát ez arra kényszeríti az indexet, hogy négytől kezdje, és számoljon vissza az első indexig, a nulláig.

Ez akkor hasznos, ha nem biztos abban, hogy a lista hosszértéke forrásból, például adatbázisból származik.

Íme egy példa:

index = (len (nyelvek)-1)
nekem a nyelvekben:
nyomtatás (Nyelvek[index])
index -=1 #Csökkentse az indexet eggyel minden iterációnál
Kimenet:
Perl
C
PHP
Megy
Piton

De ha nem von le egyet a lista hosszából, akkor a "lista a tartományon kívüli index" hibát dobja ki:

index = (len (nyelvek)-1)
nekem a nyelvekben:
nyomtatás (Nyelvek[index])
index -=1
Kimenet:
IndexError: a lista indexe tartományon kívül esik

A fenti kód indexhibát dob, mivel a lista hossza öt, és ötről nullára próbálja elindítani az indexelést, míg a legmagasabb index négy. Tehát ez azt jelenti, hogy a listának nincs ötödik indexe (hatodik elem).

Szerezzen be kreatív kezelési listákat Pythonban

A Python hibái emberbarátak és általában olvashatóak. Ez változatlanul ésszerű mértékben nyomon követhetővé teszi őket.

Amint azt megtanulta, a listaindex tartományon kívüli eltávolítása meglehetősen egyszerű. Ha ezzel a hibával szembesül a jövőbeli programjaiban, függetlenül attól, hogy mennyire összetett a lista, alkalmazhatja az ebben a bejegyzésben ismertetett fogalmakat a probléma megoldására.

Nyugodtan legyünk kreatívak az összetett listákkal. Azt is érdemes megtanulnia, hogyan rendezheti a listákat a Pythonban szabadidejében, hogy jobban megismerje az egészet.

Szinte bármilyen típusú lista rendezése Pythonban

A többféle adattípust tartalmazó listák gyorsan kicsúszhatnak a kezéből. Így rendezheti őket Python segítségével.

Olvassa el a következőt

RészvényCsipogEmail
Kapcsolódó témák
  • Programozás
  • Piton
  • Programozás
  • Kódolási tippek
A szerzőről
Idowu Omisola (136 cikk megjelent)

Idowu szenvedélyesen rajong minden intelligens technológiáért és a termelékenységért. Szabadidejében kódolással játszik, és ha unatkozik sakktáblára vált, de szeret időnként kiszakadni a rutinból. Szenvedélye, hogy megmutassa az embereknek a modern technológiát, arra sarkallja, hogy többet írjon.

Továbbiak Idowu Omisola-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez