Sind Wörterbücher in Python 3.6 geordnet?
In Python-Versionen 3.6 und höher weisen Wörterbücher eine Einfügungsreihenfolge auf, was bedeutet, dass sie die Reihenfolge beibehalten, in der sie eingefügt werden Schlüssel-Wert-Paare werden hinzugefügt. Dieses Verhalten ist nicht für alle Python-Implementierungen garantiert und gilt ausschließlich für den CPython-Interpreter.
Verbesserte Effizienz der Python 3.6-Wörterbuchimplementierung
Die neue Wörterbuchimplementierung in Python 3.6 verwendet zwei Arrays, um sowohl die Einfügereihenfolge als auch den effizienten Hash beizubehalten Suchvorgänge.
Dieser Ansatz nutzt die kleinere Größe von Ganzzahl-Arrays (dk_indices) im Vergleich zum zuvor verwendeten spärlichen Array von Schlüsselwerteinträgen (dk_entries), was zu einem kompakteren Speicherbedarf führt. Das Sparse-Array, das zuvor zur Leistungsoptimierung zur Aufnahme einer festen Größe von 2/3 Leerräumen zugewiesen wurde, ist nicht mehr erforderlich.
Visualisierung von Datenstrukturen
Ein Beispielwörterbuch:
d = {'timmy': 'red', 'barry': 'green', 'guido': 'blue'}
Alte Daten Struktur:
entries = [['--', '--', '--'], [-8522787127447073495, 'barry', 'green'], ['--', '--', '--'], ['--', '--', '--'], ['--', '--', '--'], [-9092791511155847987, 'timmy', 'red'], ['--', '--', '--'], [-6480567542315338377, 'guido', 'blue']]
Neue Datenstruktur:
indices = [None, 1, None, None, None, 0, None, 2] entries = [[-9092791511155847987, 'timmy', 'red'], [-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
Wie dargestellt, trennt die neue Struktur Indizes und Einträge und ermöglicht so eine effizientere Speicherzuweisung und schnellere Hash-Tabellensuche aufgrund der kleineren Größe der Indizes Array.
Fazit
Die erweiterte Wörterbuchimplementierung in Python 3.6 behält effektiv die Einfügereihenfolge bei und optimiert gleichzeitig die Speichernutzung durch die Verwendung separater Eintrags- und Indexarrays. Diese Optimierung führt zu einer effizienteren Darstellung und Verwaltung von Wörterbüchern, insbesondere in Szenarien mit Speicherbeschränkungen oder wenn große Wörterbücher verarbeitet werden.
Das obige ist der detaillierte Inhalt vonBehalten Python 3.6-Wörterbücher die Einfügereihenfolge bei und wie wird dies implementiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!