Heim >Backend-Entwicklung >Python-Tutorial >Wie verbessert die Implementierung des Python 3.6-Wörterbuchs die Speichernutzung und behält die Einfügereihenfolge bei?
Python 3.6: Wörterbücher behalten die Einfügungsreihenfolge bei
Ab Python 3.6 weisen Wörterbücher in CPython-Implementierungen eine Einfügungsreihenfolge auf, eine erhebliche Abweichung von früheren Versionen . Diese Funktion ist jetzt eine garantierte Sprachfunktion in Python 3.7.
Verbesserte Speichernutzung und Leistung
Die neue Wörterbuchimplementierung reduziert die Speichernutzung im Vergleich zu deutlich um 20–25 % Python 3.5. Diese Verbesserung ergibt sich aus der Verwendung separater Arrays durch die Implementierung:
Zuvor musste ein spärliches Array vom Typ PyDictKeyEntry zugewiesen werden, was aus Leistungsgründen zu Platzverschwendung führte. Der neue Ansatz weist nur die notwendigen Einträge zu und verwendet ein spärliches Array vom Typ intX_t, das weniger Speicher verbraucht.
Verwendete Datenstrukturen
Ursprünglich wurden Wörterbücher als [ keyhash, key, value] in einem spärlichen Array mit leeren Einträgen, gekennzeichnet durch „--“. Der neue Ansatz organisiert die Daten wie folgt:
Einträge: [[-9092791511155847987, 'timmy', 'red'],
[-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
Diese überarbeitete Struktur reduziert den Speicheraufwand erheblich.
Vorteile der Einfügungsreihenfolge
Während sich die neue Wörterbuchimplementierung in erster Linie auf die Speicheroptimierung konzentriert, ist die Einfügungsreihenfolgefunktion praktisch Anwendungen:
Es ist wichtig zu beachten, dass die Einfügungsreihenfolge für verschiedene Python-Implementierungen oder zukünftige Sprachversionen nicht garantiert ist. In Python 3.7 und höher ist es jedoch eine garantierte Funktion, auf die Sie sich verlassen können.
Das obige ist der detaillierte Inhalt vonWie verbessert die Implementierung des Python 3.6-Wörterbuchs die Speichernutzung und behält die Einfügereihenfolge bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!