Beste Antwort
Guten Abend,
Einige Sprachen implementieren glücklicherweise ein sicheres Objekt Zugriff, obwohl ich in Python nicht viel weiß, können wir davon ausgehen, dass das Objekt, auf das Sie zugreifen, eine Bereichsprüfung hat.
Was wir aus dieser sehr einfachen Aussage verstehen können, ist, dass Python Objekte für einige der meisten seiner grundlegenden Elemente erstellt Datentypen und ruft implizit die Accessoren nach Bedarf auf, transformiert und überprüft den Bereich, konvertiert usw., sodass dort ein logischer Fehler auftritt. Überprüfen Sie, warum Sie auf ein Tupel außerhalb des Bereichs zugegriffen haben. Anscheinend weist der Code einen Indexfehler auf und / oder Tupelgröße.
Dies ist ein Hinweis darauf, dass andere Sprachen toleranter sind, was sie ermöglichen, was dann zu einem sogenannten Laufzeitfehler führt. Wenn Sie außerhalb des Bereichs zugreifen, bedeutet dies, dass Sie dies tun Lesen Sie unbeabsichtigte Daten und schreiben Sie möglicherweise auch in den Speicher eines anderen Objekts, wodurch die Daten beschädigt werden. Dies führt letztendlich entweder zu Datenverlust oder zum Ausführen von ti Ich stürze ab.
Grüße
Jean-François
Antwort
Die Python-Liste ist veränderbar, daher ist die Größe nicht festgelegt.
Da die Größe nicht festgelegt ist
Basierend auf den von Ihnen für eine Liste zugewiesenen Werten erstellt die Python-Speicherverwaltung – intern die Liste (verfügbarer Index) im Wachstumsmuster 0, 4 , 8, 16, 25, 35, 46, 58, 72, 88, … anstatt realloc () viele Male aufzurufen.
Die zugewiesenen Werte für eine Liste sind jedoch kleiner als die Liste ( verfügbarer Index).
Für eine Liste ist also der verfügbare Index > zugewiesener Index.
Wenn Sie versuchen, auf das leere oder None-Element von zuzugreifen Wenn Sie auf den verfügbaren Index der Liste zeigen, erhalten Sie den Fehler „ Listenindex außerhalb des Bereichs“.
Öffnen Sie Python und verschmutzen Sie Ihre Hände mit Th befindet sich unter dem Code, um ein besseres Verständnis zu erhalten.
>> x = list (1234)
>> x
[1, 2, 3, 4]
>> length = len (x)
4
>> x [Länge ]
Indexfehler: Listenindex außerhalb des Bereichs
HINWEIS: Der Listenindex beginnt bei Null (0).
Aber hier ist die Länge vier.
Die Zuordnung der obigen Liste lautet wie folgt:
x [0] = 1
x [1] = 2
x [2] = 3
x [3] = 4
x [4] =?
Wenn Sie versuchen, auf das x [4] zuzugreifen, das ist Nicht vorhanden , der Listenindex wird außerhalb des Bereichs angezeigt.
Weitere Informationen zur internen Speicherzuweisung in den Listen finden Sie unter diesem Link Python-Liste Implementierung .
Vielen Dank !!!