Beste antwoord
Goedenavond,
Sommige talen implementeren gelukkig veilig object access, hoewel ik niet veel weet in Python, kunnen we aannemen dat het object waartoe u toegang hebt bereikcontrole heeft.
Wat we kunnen begrijpen uit deze zeer eenvoudige verklaring is dat Python objecten maakt op sommige tot de meeste van zijn fundamentele gegevenstypen en roept impliciet zijn accessors op als dat nodig is, transformaties en bereikcontrole, conversies enzovoort, dus je hebt daar een logische fout, controleer alstublieft waarom je toegang hebt gekregen tot een tuple buiten zijn bereik, blijkbaar bevat de code een fout in de index en / of tuple-grootte.
Dat is een opmerking om aan te geven dat andere talen toleranter zijn in wat ze u toestaan, wat vervolgens resulteert in een zogenaamde runtime-fout, want toegang buiten bereik betekent dat u ofwel onbedoelde gegevens lezen en ook naar het geheugen van een ander object kunnen schrijven en daardoor gegevens corrumperen, wat uiteindelijk resulteert in verlies van gegevens of me crash.
Met vriendelijke groet
Jean-François
Antwoord
In python-lijst is veranderlijk, dus de grootte is niet vast.
Vanwege de grootte staat niet vast
Gebaseerd op de door jou toegewezen waarden voor een lijst, maakt python-geheugenbeheer – intern de lijst (beschikbare index) aan in het groeipatroon van 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88, … in plaats van realloc () vaak aan te roepen.
Maar de toegewezen waarden voor een lijst zijn kleiner dan de lijst ( beschikbare index).
Dus voor een lijst, de beschikbare index > toegewezen index.
Als u toegang probeert te krijgen tot het lege of None-element door wijzend naar beschikbare index van de lijst, dan krijg je de “ Lijst index buiten bereik fout”.
open python en maak je handen vuil met Th staat onder de code, voor een beter begrip.
>> x = list (1234)
>> x
[1, 2, 3, 4]
>> length = len (x)
4
>> x [lengte ]
Indexfout: lijstindex buiten bereik
OPMERKING: De lijstindex begint vanaf nul (0).
Maar hier is de lengte vier.
De toewijzing van bovenstaande lijst is als:
x [0] = 1
x [1] = 2
x [2] = 3
x [3] = 4
x [4] =?
Als u probeert toegang te krijgen tot de x [4] die is Niet-bestaand , de lijstindex komt buiten het bereik.
Voor een beter begrip van hoe de lijsten intern geheugen toewijzen, zie deze link Python-lijst implementatie .
Bedankt !!!