Sind Python 3.6-Wörterbücher geordnet?
In Python-Versionen 3.6 und höher behalten Wörterbücher eine Einfügereihenfolge für ihre Elemente bei. Dieses Verhalten wird als „Einfügereihenfolge“ bezeichnet. Im Gegensatz zu OrderedDict, das erweiterte reihenfolgebezogene Funktionen bietet, behalten Wörterbücher nur die Reihenfolge der Elementeinfügungen bei.
Wie Python 3.6 die Wörterbuchleistung verbessert und gleichzeitig die Reihenfolge beibehält
Das Python 3.6 Die Wörterbuchimplementierung verwendet einen Dual-Array-Ansatz, um die Speichereffizienz zu verbessern und gleichzeitig die Einfügung beizubehalten Reihenfolge.
Dieser Ansatz vermeidet die Notwendigkeit eines spärlich besiedeltes Array, was in früheren Implementierungen der Fall war. Stattdessen werden nur notwendige Einträge und ihre Indizes gespeichert, was zu einer kompakteren Speichernutzung führt.
Visuelle Darstellung:
Bedenken Sie das folgende Wörterbuch:
d = {'timmy': 'red', 'barry': 'green', 'guido': 'blue'}
Unter der neuen Implementierung würde es wie folgt gespeichert werden:
indices = [None, 1, None, None, None, 0, None, 2] entries = [[-9092791511155847987, 'timmy', 'red'], [-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
Im Vergleich zur vorherigen Implementierung reduziert dieser Ansatz die Speicherverschwendung erheblich.
Vorteile der neuen Wörterbuchimplementierung
In erster Linie verbessert die neue Implementierung die Speichernutzung und behält gleichzeitig die Einfügereihenfolge bei. Während die Geschwindigkeitsunterschiede zwischen der alten und der neuen Implementierung nicht dramatisch sind, können bestimmte Vorgänge wie Iteration und Größenänderung zu Leistungssteigerungen führen.
Das obige ist der detaillierte Inhalt vonSind Python 3.6-Wörterbücher geordnet und wie wirkt sich dies auf die Leistung aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!