Warum Tupeln nehmen weniger Platz im Speicher als Listen?

Einen tuple nimmt weniger Speicherplatz in Python:

>>> a = (1,2,3)
>>> a.__sizeof__()
48

in der Erwägung, dass lists braucht mehr Speicherplatz:

>>> b = [1,2,3]
>>> b.__sizeof__()
64

Was geschieht intern auf die Python Speicherverwaltung?

  • Ich bin mir nicht sicher, wie das intern funktioniert, aber die Liste Objekt hat zumindest mehr Funktionen, wie z.B. Anhängen, die die Tupel nicht haben. Es ist daher sinnvoll, wenn das Tupel als eine einfachere Art des Objekts, die kleiner sein
  • Ich denke, es hängt auch von Maschine zu Maschine ....für mich, wenn ich überprüfen a = (1,2,3) dauert 72 und b = [1,2,3] nimmt 88.
  • Python Tupel sind unveränderlich. Veränderliche Objekte haben zusätzliche overhead Umgang mit runtime-änderungen.
  • die Anzahl der Methoden, die ein Typ hat keine Auswirkungen auf den Speicherplatz der Instanzen nehmen. Die Methode Liste aus, und Ihre Codes werden von den object-Prototyp, aber Instanzen speichern nur die Daten und die internen Variablen.
InformationsquelleAutor JON | 2017-10-10
Schreibe einen Kommentar