Überschreibe die {...} -Notation, damit ich ein OrderedDict () anstelle eines dict () bekomme?

Ich verwenden möchte .py Datei wie eine config-Datei.
Also mit der {...} notation ich kann ein Wörterbuch verwenden strings als Schlüssel, aber die definition, Ordnung verloren in einem standard-python-dictionary.

Meine Frage: ist es möglich, das überschreiben der {...} notation, so dass ich eine OrderedDict() statt einer dict()?

Ich hatte gehofft, dass einfach überschreiben dict-Konstruktor mit OrderedDict (dict = OrderedDict) funktionieren würde, aber es funktioniert nicht.

ZB:

dict = OrderedDict
dictname = {
   'B key': 'value1',
   'A key': 'value2',
   'C key': 'value3'
   }

print dictname.items()

Ausgabe:

[('B key', 'value1'), ('A key', 'value2'), ('C key', 'value3')]
Kommentar zu dem Problem
Ich gehe davon aus, dass die Ausgabe bereits erwähnt, hier ist, was Sie möchte - nicht, was passiert ? Kommentarautor: Tony Suffolk 66
FYI Menschen stolpern auf diese 5 Jahre alte Frage im Jahr 2016: ab python 3.6 alle dicts behalten einlegen, um so vorwärts geht keiner dieser hacks benötigt werden. Kommentarautor: Nick Sweeting
@NickSweeting docs.python.org/3/whatsnew/3.6.html#new-dict-implementation sagt, "Der Auftrag-die Erhaltung Aspekt der neuen Implementierung ist als ein Implementierungsdetail und sollte nicht als verlässlich angesehen werden". Kommentarautor: Samuel Santana
@Samuel Santana die Art, wie ich Lesen Sie den rest des Satzes, den du zitiert hast der Anfang lässt vermuten, dass das neue Bestell-Erhaltung ist die langfristige gewünschte Semantik für die Sprache, ohne sich auf es mit der rechten jetzt. Kommentarautor: Adam Kerz

InformationsquelleAutor der Frage fdb | 2011-10-24

Schreibe einen Kommentar