Можно ли изменить содержимое внутреннего словаря только без изменения порядка внешнего словаря во вложенном словаре в python? - PullRequest
0 голосов
/ 25 апреля 2018

В принятом ответе этого поста четко указано, что в Python невозможно отсортировать словарь. Однако следующий ответ утверждает, что на самом деле можно выполнить «сортировку по значениям словаря». Моя ситуация близка к этому посту . Здесь основной словарь предлагается сортировать по значению ключа одного из внутренних словарей, используя OrderedDict. В моем случае я хочу, чтобы ключ основного словаря был целым, но значения (которые сами являются словарями) сортируются в порядке убывания. У меня есть следующий словарь:

    dict = {
        1: {1: -8, 2: -5, 3: -6, 4: -2},
        2: {1: -7, 2: -6, 3: -5, 4: -1}, 
        3: {1: -7, 2: -6, 3: -4, 4: -5}, 
        4: {1: -7, 2: -4, 3: -6, 4: -8}
       }

Как я могу расположить внутренние словари так, чтобы результирующий словарь стал следующим:

dict = {
        1: {4: -2, 2: -5, 3: -6, 1: -8},
        2: {4: -1, 3: -5, 2: -6, 1: -7}, 
        3: {3: -4, 4: -5, 2: -6, 1: -7}, 
        4: {2: -4, 3: -6, 1: -7, 4: -8}
       }

Установленный python в моей системе: Python 3.6.5 . Прошла всего неделя с тех пор, как я запустил свой первый код на Python. Следовательно, я очень плохо знаком с питоном. Я задавал несколько вопросов раньше, которые не получили хорошего ответа. Мне тоже пришлось удалить вопрос. Я в опасности быть заблокированным за то, что задаю еще вопросы Я видел много постов, касающихся сортировки словаря в python, и смешанные ответы смутили меня. По сути, я прошу отсортировать ключи внутреннего словаря по их значениям (без изменения порядка ключей основного словаря). Это вообще возможно? Как мне это сделать? Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 25 апреля 2018

Я хотел отсортировать ключи внутренних словарей по их значениям.Я мог бы отсортировать ключи по их значениям, однако вывод отличается (список внутри словаря), но полезен в моем случае.

dict1 = {}
for Keys, Values in dict.items():
   dict1[Keys] = sorted(Values, key = Values.get)

При печати dict1 я получаю следующее:

dict1 = {
         1: [4, 1, 3, 2], 
         2: [1, 4, 3, 2], 
         3: [1, 4, 2, 3], 
         4: [4, 1, 2, 3]
        }

Хотя я хотел, чтобы мои выходные данные были во вложенном словаре, я изменю свой код в соответствии с этим результатом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...