Hvad betyder fejlen “tupleindeks uden for rækkevidde” i Python?


Bedste svar

God aften,

Nogle sprog implementerer heldigvis et sikkert objekt adgang, selvom jeg ikke ved meget i Python, kan vi antage, at objektet, du får adgang til, har rækkevidde kontrol.

Hvad vi kan forstå fra denne meget enkle erklæring er, at Python opretter objekter på nogle til det meste af dets grundlæggende datatyper og kalder implicit dets accessors efter behov, transformerer og rækkevidde kontrol, konverteringer osv., så du har en logisk fejl der, skal du kontrollere, hvorfor du fik adgang til en tuple uden for dens rækkevidde, tilsyneladende har koden en vis fejl i indeks og / eller tupelstørrelse.

Det er en note, der angiver, at andre sprog er mere tolerante i, hvad de tillader dig at gøre, hvilket derefter resulterer i såkaldt run time error, for at få adgang til uden for området betyder, at du enten læse utilsigtede data og kunne også skrive til et andet objekts hukommelse og derfor korrupte data, i enderne med enten tab af data eller køre ti mig styrter ned.

Hilsen

Jean-François

Svar

I pythonlisten kan ændres, så størrelsen er ikke fast.

På grund af størrelsen er ikke rettet

Baseret på de tildelte værdier af dig til en liste, styrer python-hukommelse internt listen (tilgængeligt indeks) i vækstmønsteret 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88,… i stedet for at ringe til realloc () mange gange.

Men de tildelte værdier for en liste er mindre end listen ( tilgængeligt indeks).

Så for en liste er tilgængeligt indeks > tildelt indeks.

Hvis du forsøger at få adgang til tom eller Intet element af peger på det tilgængelige indeks på listen, så får du “ Listeindekset uden for rækkevidde-fejlen.

åben python og beskid dine hænder med th er under koden for at få en bedre forståelse.

>> x = list (1234)

>> x

[1, 2, 3, 4]

>> length = len (x)

4

>> x [længde ]

Indeksfejl: listeindeks uden for område

BEMÆRK: Listeindekset starter fra nul (0).

Men her er længden fire.

Opgaven med ovenstående liste er som:

x [0] = 1

x [1] = 2

x [2] = 3

x [3] = 4

x [4] =?

Hvis du prøver at få adgang til x [4], som er Ikke eksisterende , listeindekset uden for området kommer.

For en bedre forståelse af hvordan listerne tildeler hukommelse internt, se dette link Python-liste implementering .

Tak !!!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *