2016-11-25 6 views
0

Also sollte ich ein Wörterbuch bestellen lassen, und die Art, wie ich es jetzt mache, ist nicht gültig;Wie man ein Wörterbuch ohne _collections oder andere Bibliothek bestellt?

Weil es die Bibliothek "_collections" verwendet, gibt es eine kompakte Möglichkeit, dies ohne eine importierte Bibliothek zu tun?

+1

Wie wäre es nur 'sortierte (dictionary.items())'? –

+0

Das macht ein Tupel-Paar, aber ich kann damit auskommen. Danke – Grak

Antwort

2

Nein, gibt es nicht. Wenn Sie bestellen möchten, müssen Sie auf OrderedDict zurückgreifen; Das ist das einzige Mittel, um die Reihenfolge in einem dict-like-Objekt für Python <= 3.5 beizubehalten.

Von Python 3.6, erinnern Wörterbücher, die Reihenfolge der Einführung von Standard (Siehe: Dictionaries are ordered in Python 3.6+) so, Sie werden in der Lage eine sortierte Folge, um es zu füttern und die Bestellung ohne Verwendung anderer Module zu erhalten (z OrderedDict). Trotz dieses ist es am besten, es in eine OrderedDict einzuwickeln; Das Bestellverhalten von dict s in 3.6gilt als ein Implementierungsdetail, das Sie nicht von abhängen sollten.

+0

Also, im Grunde ist der einzige klobige Weg, es zu tun, eine Liste der Schlüssel zuerst und ... Magic? Äh, das ist ziemlich nervig. – Grak

+0

@Grak, aber so sind Wörterbücher implementiert. Wenn Sie eine Bestellung benötigen, warum halten Sie sie nicht, wie John vorgeschlagen hat, in einer geordneten Reihenfolge wie eine Liste? –