Обратный порядок элементов в словаре - PullRequest
3 голосов
/ 19 марта 2020

Если у меня есть словарь dict1 = {1:'a', 2:'c', 'd':'gh'}, и я хочу изменить его так, чтобы dict2 = {'d':'gh', 2:'c', 1:'a'}. Я не хочу менять отображение словаря.

Я делаю это в python 3.7, что сохраняет порядок элементов в словарях. Есть ли функция, которая будет делать это или какой код позволит мне сделать это.

Ответы [ 2 ]

2 голосов
/ 19 марта 2020

вы можете преобразовать в список dict1.items, затем использовать встроенную функцию reversed:

dict(reversed(list(dict1.items())))

, вывод:

{'d': 'gh', 2: 'c', 1: 'a'}
1 голос
/ 19 марта 2020

Вы можете использовать reversed(), чтобы перевернуть словарь:

>>> dict1 = {1:'a', 2:'c', 'd':'gh'}
>>> dict2 = dict(reversed(dict1.items()))
>>> dict2
{'d': 'gh', 2: 'c', 1: 'a'}

Как @ kederra c, на что указывают подсказки в комментариях выше. не будет работать в Python 3.7, только 3.8. Это вызовет исключение TypeError: 'dict_items' object is not reversible. Чтобы это исправить, вам нужно привести list() к dict1.items(), как показано в ответе @ kederra c . В любом случае это возможно безопасно сделать для более безопасного и переносимого кода.

...