Heim > Backend-Entwicklung > Python-Tutorial > Sind Python 3.6-Wörterbücher geordnet und wie wirkt sich dies auf die Leistung aus?

Sind Python 3.6-Wörterbücher geordnet und wie wirkt sich dies auf die Leistung aus?

Patricia Arquette
Freigeben: 2024-12-21 17:19:10
Original
990 Leute haben es durchsucht

Are Python 3.6  Dictionaries Ordered, and How Does This Impact Performance?

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.

  • dk_entries-Array: Speichert die Wörterbucheinträge in der Reihenfolge, in der sie eingefügt wurden.
  • dk_indices-Array: Enthält Indizes, auf die verwiesen wird zum dk_entries-Array.

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'}
Nach dem Login kopieren

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']]
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage