2016-06-16 6 views
0

I-Elemente zu einem Wörterbuch in der folgenden Art und Weise hinzuzufügen, ich versuche:Anfügen neuen Schlüssel zu einem Wörterbuch

a = {} 
a['b'] = 1 
a['a'] = 2 

Endlich ein Aussehen wie:

{'a': 2, 'b': 1} 

Aber eigentlich habe ich das Wörterbuch wollte enthalten Schlüssel in der Reihenfolge:

{'b': 1, 'a': 2} 

Kann mir jemand dies erklären? Warum werden die Schlüssel alphabetisch sortiert, wenn Wörterbücher (Hashmaps) keine Reihenfolge haben?

+0

Sie verwenden 'OrderedDict' –

+1

Sie sind nicht sortiert werden sollten, das passiert einfach zu sein, wie es gezeigt wird, ist. Es ist willkürlich. –

+0

Wenn ich durch das Wörterbuch iteriere, wird zuerst 'a' gedruckt und dann 'b'. Kannst du mir das erklären? –

Antwort

1

Sie haben Recht, dass Wörterbücher nicht bestellt, sondern hashed sind. Daher sollte die Reihenfolge eines Wörterbuchs nicht verlässlich sein.

Sie die OrderedDict verwenden, können Sie Ihr Ziel erreichen helfen:

from collections import OrderedDict 
a = OrderedDict() 
a['b'] = 1 
a['a'] = 2 

> a 
> OrderedDict([('b', 1), ('a', 2)])