Wörterbuchreihenfolge in Python
Warum scheint ein Python-Wörterbuch geordnet zu sein, obwohl es angeblich ungeordnet ist?
Überlegen Sie das folgende Wörterbuch:
propertyList = { "id": "int", "name": "char(40)", "team": "int", "realOwner": "int", "x": "int", "y": "int", "description": "char(255)", "port": "bool", "secret": "bool", "dead": "bool", "nomadic": "bool", "population": "int", "slaves": "int", }
Beim Drucken des Wörterbuchs mit „n“.join(myDict), Es wird eine unerwartete Reihenfolge beobachtet:
name nomadic dead port realOwner secret slaves team y x Population id description
Während Python-Wörterbücher tatsächlich ungeordnet sind, wird immer dieselbe Reihenfolge erzeugt.
Zugrunde liegende Implementierung
In In älteren Python-Versionen wurden Wörterbücher als Hash-Tabellen implementiert. Hash-Tabellen verwenden eine Funktion, um Schlüssel bestimmten Positionen in einem Array zuzuordnen, was zu einer scheinbar willkürlichen, aber konsistenten Reihenfolge führt.
Ordered Dict Implementation
Python hat es inzwischen überarbeitet dict-Implementierung, um die Einfügereihenfolge beizubehalten. Diese Garantie gilt ab Python 3.7. Daher basiert die Wörterbuchimplementierung nicht mehr ausschließlich auf einer Hash-Tabelle, obwohl bei ihrer Erstellung immer noch eine Hash-Tabelle verwendet wird.
Das obige ist der detaillierte Inhalt vonWarum erscheint mein Python-Wörterbuch geordnet, obwohl es ungeordnet ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!