Vad betyder felet ”tupelindex utanför intervallet” i Python?


Bästa svaret

God kväll,

Vissa språk implementerar lyckligtvis ett säkert objekt åtkomst, även om jag inte vet så mycket i Python kan vi anta att objektet du har tillgång till har räckviddskontroll.

Vad vi kan förstå från detta mycket enkla uttalande är att Python skapar objekt på vissa till de flesta av dess grundläggande datatyper och kallar implicit dess accessorer efter behov, transformerar och intervallkontroll, konverteringar osv., så att du har ett logiskt fel där, kontrollera varför du fick tillgång till en tuple utanför dess intervall, tydligen har koden ett visst fel i index och / eller tupelstorlek.

Det är en anmärkning för att ange att andra språk är mer toleranta i vad de tillåter dig att göra, vilket sedan resulterar i så kallat körtidsfel, för åtkomst utanför området betyder antingen att du läser oavsiktlig data och kan också skriva till ett annat objekts minne och därmed korrumpera data, i slutändan vilket antingen förlorar data eller körs ti mig kraschar.

Hälsningar

Jean-François

Svar

I python-listan kan det ändras, så storleken är inte fast.

På grund av att storleken inte är fixad

Baserat på de tilldelade värdena för dig för en lista, skapar pythonminneshantering internt listan (tillgängligt index) i tillväxtmönstret 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88, … istället för att ringa till realloc () många gånger.

Men de tilldelade värdena för en lista är mindre än listan ( tillgängligt index).

Så för en lista är tillgängligt index > tilldelat index.

Om du försöker komma åt tomt eller Inget element av pekar på tillgängligt index i listan, då får du “ Listindex utanför intervallet fel.

öppna python och smutsa händerna med TH är under koden för att få en bättre förståelse.

>> x = list (1234)

>> x

[1, 2, 3, 4]

>> length = len (x)

4

>> x [längd ]

Indexfel: lista index utanför intervallet

OBS: Listindex börjar från noll (0).

Men här är längden fyra.

Tilldelningen av ovanstående lista är som:

x [0] = 1

x [1] = 2

x [2] = 3

x [3] = 4

x [4] =?

Om du försöker komma åt x [4] som är Icke existerande kommer listindexet utanför intervallet att komma.

För en bättre förståelse för hur listorna fördelar minne internt, se denna länk Python-lista implementering .

Tack !!!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *