Så du arbejdede med en liste eller et array i Python og forsøgte sandsynligvis at opdele det. Men i stedet for det forventede resultat får du en fejl, der siger "listeindeks uden for rækkevidde." Ingen bekymringer, det kan ske for alle.
Lad os undersøge, hvad denne fejl betyder, dens årsag, og hvordan man fjerner den uden videre.
Hvad betyder "listeindekset uden for rækkevidde"-fejlen i Python?
Når Python kaster en "listeindeks uden for rækkevidde"-fejlen, betyder det, at du forsøgte at skære listen ud over dens sidste indeks.
Python identificerer hvert element på en liste ved dets indeks. Og indekset for en liste starter fra nul. For eksempel, når du har en liste med fem elementer, er dens første punkt på indeks nul, mens den sidste er på det fjerde indeks.
For eksempel i en liste med fem programmeringssprog:
Sprog = ["Python", "Go", "PHP", "C", "Perl"]
Indekseringen for ovenstående liste er mellem nul og fire. Så et forsøg på at skære det ud for at udskrive det femte element som vist nedenfor giver en fejl:
print (sprog[5])
Produktion:
IndexError: listeindeks uden for rækkevidde
I ovenstående eksempel forsøger Python at lede efter det femte indeks på listen, og når det ikke kan finde det, kaster det listeindeksfejlen. Det er fordi det første element (Python) er på indeks nul, mens det sidste (Perl) er på indeks fire.
Det er grundlaget for fejlen "listeindeks uden for rækkevidde". Som sagt kaster Python det, hver gang du forsøger at skære en liste ud over dets sidste indeks.
Sådan fjerner du "listeindekset uden for rækkevidde"-fejlen i Python
Så hvordan kan du fjerne denne fejl? Det er nemt.
I forlængelse af det foregående afsnit ovenfor kan du udskrive indekserne ved hjælp af en tilsløjfe i en listeforståelse:
indekser = [languages.index (i) for i på sprog]
print (indekser)
Produktion:
[0, 1, 2, 3, 4]
Indekset for en liste er grundlaget for udskæring i programmering. Så da du kender det højeste indeks på listen for output ovenfor (4), kan du dechifrere udsnitsgrænsen.
Derfor, for at opdele listen og få det sidste element:
print (sprog[4])
Produktion:
Perl
Den udsender nu det korrekte resultat.
Hvad hvis du vil gå gennem listen ved hjælp af dens indeks?
Udover det almindelige Python til loop, kan du også bruge indekskonceptet til at gentage en liste. Selvom denne metode kan se besværlig ud, er den nogle gange uundgåelig. For eksempel er det praktisk, hvis du vil sortere en liste i omvendt rækkefølge.
Denne metode fungerer ved at indstille et indledende indeks og øge eller dekrementere det med et indtil det sidst tilgængelige indeks.
For at udskrive varerne med et stigende indeksnummer (den første til den sidste vare), f.eks.:
indeks = 0 # Indledende indeks
for i i sprog:
print (Sprog[indeks])
indeks +=1
Produktion:
Python
Gå
PHP
C
Perl
Men hvad sker der, hvis du indstiller det indledende indeks til et i stedet for nul? Tag et kig:
indeks = 1 # Indledende indeks
for i i sprog:
print (Sprog[indeks])
indeks +=1
Produktion:
Gå
PHP
C
Perl
IndexError: listeindeks uden for rækkevidde
I ovenstående eksempel starter indekseringen fra det andet punkt (indeks et, Gå). Så mens den øges, stopper løkken ikke, før den fuldfører optællingen af de fem elementer. Dette tvinger indekset til at stige med én indtil det sidste punkt.
Derfor rammer udsnittet et femte indeks, som ikke er tilgængeligt. Så det kaster en indeksfejl. Det betyder, at indekset stiger i følgende mønster for hver vare:
1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5
I stedet for det korrekte mønster, som er:
0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4
Som du kan se, er den højeste værdi af ovenstående indeks fire, hvilket er korrekt, da løkken begynder at øge indekseringen fra nul.
Hvis det oprindelige indeks indstilles til nul, som du gjorde i det første eksempel i dette afsnit, fjernes fejlen "listeindeks uden for rækkevidde":
indeks = 0 # Indledende indeks
for i i sprog:
print (Sprog[indeks])
indeks +=1 #Forøg indekset med et for hver iteration
For at anvende dette koncept til at udskrive elementerne i omvendt rækkefølge, skal du trække en fra arrayets længde. Så dette tvinger indekset til at starte fra fire og tælle ned til det første indeks, nul.
Dette er nyttigt, hvis du ikke er sikker på længdeværdien af listen, der kommer fra en kilde, f.eks. en database.
Her er et eksempel:
indeks = (len (sprog)-1)
for i i sprog:
print (Sprog[indeks])
indeks -=1 #Reducer indekset med et for hver iteration
Produktion:
Perl
C
PHP
Gå
Python
Men undlader man at trække en fra længden af listen, kaster fejlen "liste uden for rækkevidde"-fejlen:
indeks = (len (sprog)-1)
for i i sprog:
print (Sprog[indeks])
indeks -=1
Produktion:
IndexError: listeindeks uden for rækkevidde
Ovenstående kode kaster en indeksfejl, fordi længden af listen er fem, og den forsøger at begynde at indeksere ned fra fem til nul, hvorimod det højeste indeks er fire. Så det betyder, at listen ikke har et femte indeks (sjette punkt).
Få kreative håndteringslister i Python
Pythons fejl er menneskevenlige og typisk læsbare. Uvægerligt gør dette dem sporbare i et rimeligt omfang.
Som du har lært, er det ret nemt at fjerne listeindekset uden for rækkevidde. Hvis du står over for denne fejl i dine fremtidige programmer, uanset hvor kompleks listen er, kan du anvende begreberne forklaret i dette indlæg for at løse problemet.
Vær gerne kreativ med komplekse lister. Du vil måske også lære at sortere lister i Python i din fritid for at få bedre styr på det hele.
Lister med flere datatyper kan hurtigt komme ud af hånden. Sådan sorterer du dem med Python.
Læs Næste
- Programmering
- Python
- Programmering
- Kodningstip
Idowu brænder for alt smart teknologi og produktivitet. I sin fritid leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde ud af rutinen en gang imellem. Hans passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere