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
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.
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
- Programozás
- Piton
- Programozás
- Kódolási tippek

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.
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