Z dziennika zmian Pythona 3.7 :
natura zachowania kolejności wstawiania obiektów dict została zadeklarowana jako oficjalna część specyfikacji języka Python.
Czy to oznaczałoby, że OrderedDict
staną się zbędne? Jedynym zastosowaniem, o jakim myślę, będzie zachowanie wstecznej kompatybilności ze starszymi wersjami Pythona, które nie zachowują kolejności wstawiania dla normalnych słowników.
python
python-3.x
dictionary
python-3.7
ordereddict
James Hiew
źródło
źródło
Odpowiedzi:
Nie, nie stanie się on zbędny w Pythonie 3.7, ponieważ
OrderedDict
nie tylkodict
zachowuje kolejność wstawiania, ale także oferuje metodę zależną od zamówieniaOrderedDict.move_to_end()
i obsługujereversed()
iterację *.Co więcej, porównania równości z
OrderedDict
są wrażliwe na kolejność i nadal nie ma to miejscadict
w Pythonie 3.7, na przykład:>>> OrderedDict([(1,1), (2,2)]) == OrderedDict([(2,2), (1,1)]) False >>> dict([(1,1), (2,2)]) == dict([(2,2), (1,1)]) True
Dwa istotne pytania tutaj i tutaj .
* Obsługa
reversed()
iteracji zwykłego języka Pythondict
została dodana do języka Python 3.8, patrz problem33462źródło