Начиная с CPython 3.6 (как деталь реализации) и Python 3.7 (как языковая гарантия), простые dict
s имеют порядок.
На 3.7 и ниже они не дошли доподдержка __reversed__
для dict
и dict
представлений, поэтому вам необходимо преобразовать элементы в list
(или tuple
, это не имеет значения) и выполнить итерацию в обратном порядке:
d = {3: 'three', 2: 'two', 1: 'one'}
d = dict(reversed(list(d.items())))
Когда выйдет 3.8, представление элементов будет изначально итерируемым в обратном порядке, так что вы можете просто сделать:
d = dict(reversed(d.items()))
без необходимости делать временные list
вообще.
Pre-3,6, вам потребуется collections.OrderedDict
(как для входа, так и для выхода), чтобы достичь желаемого результата.