Если вы используете Python 3.6 или ниже, словарный порядок не поддерживается или не гарантируется. Что вы можете сделать, это использовать collections.OrderedDict()
и применить reversed()
для обращения к словарю:
>>> from collections import OrderedDict
>>> d = {'dictA': {'key_1': 'value_1'}, 'dictB': {'key_2': 'value_2'}, 'dictC': {'key_3', 'value_3'}}
>>> OrderedDict(reversed(list(d.items())))
OrderedDict([('dictC', {'value_3', 'key_3'}), ('dictB', {'key_2': 'value_2'}), ('dictA', {'key_1': 'value_1'})])
OrderedDict()
является подклассом dict
, поэтому он работает как обычный словарь.
Однако, если вы используете более новую версию Python, порядок вставки словаря сохраняется. Таким образом, вы можете просто сделать следующее:
>>> dict(reversed(list(d.items())))
{'dictC': {'value_3', 'key_3'}, 'dictB': {'key_2': 'value_2'}, 'dictA': {'key_1': 'value_1'}}
Примечание: По соображениям безопасности, вероятно, лучше преобразовать list()
в d.items
, поскольку более старые версии предварительно Python 3.8 не разрешать изменение типа dict_items
. В противном случае вы получите ошибку TypeError: 'dict_items' is not reversible
.