Aus dem Python 3.7-Änderungsprotokoll :
Die Beibehaltung der Einfügungsreihenfolge von diktierten Objekten wurde als offizieller Bestandteil der Python-Sprachspezifikation deklariert .
Würde dies bedeuten, dass OrderedDict
das überflüssig wird? Die einzige Verwendung, die ich mir vorstellen kann, besteht darin, die Abwärtskompatibilität mit älteren Python-Versionen aufrechtzuerhalten, bei denen die Einfügereihenfolge für normale Wörterbücher nicht beibehalten wird.
python
python-3.x
dictionary
python-3.7
ordereddict
James Hiew
quelle
quelle
Antworten:
Nein, es wird in Python 3.7 nicht redundant, da
OrderedDict
es nicht nurdict
die Einfügereihenfolge beibehält, sondern auch eine auftragsabhängige MethodeOrderedDict.move_to_end()
bietet und diereversed()
Iteration * unterstützt .Darüber hinaus sind Gleichheitsvergleiche mit
OrderedDict
auftragsabhängig, und dies istdict
in Python 3.7 immer noch nicht der Fall , zum Beispiel:>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)]) False >>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)]) True
Zwei relevante Fragen hier und hier .
* Unterstützung für die
reversed()
Iteration von regulärem Python wurdedict
für Python 3.8 hinzugefügt, siehe Ausgabe 33462quelle