Python3: сортировка вложенного словаря из трех уровней по значению - PullRequest
0 голосов
/ 17 марта 2019

Я пытался отсортировать словарь словарей словарей (3 уровня), но безуспешно. Мне нужно отсортировать его по значению поля "common_RMSD". Это пример ввода (извините, я не знаю, как правильно отформатировать словарь здесь ...)

my_dict = {'E': {
         'E': {
            'common_sup': <Bio.PDB.Superimposer.Superimposer object at 0x08451030>, 
            'common_sample_chain_ID': 'E', 
            'common_ref_chain_ID': 'E', 
            'common_RMSD': 2.013799285922141e-14}, 
          'F': {
            'common_sup': <Bio.PDB.Superimposer.Superimposer object at 0x08786FB0>, 
            'common_sample_chain_ID': 'F', 
            'common_ref_chain_ID': 'E', 
            'common_RMSD': 0.1207801497077146}}, 
         'F': {
          'E': {
            'common_sup': <Bio.PDB.Superimposer.Superimposer object at 0x08AB6410>, 
            'common_sample_chain_ID': 'E', 
            'common_ref_chain_ID': 'F', 
            'common_RMSD': 0.12078014970771417}, 
          'F': {
            'common_sup': <Bio.PDB.Superimposer.Superimposer object at 0x08AB63F0>, 
            'common_sample_chain_ID': 'F', 
            'common_ref_chain_ID': 'F', 
            'common_RMSD': 7.559143985024071e-15}
         }  }

В предыдущих постах я читал об использовании функций lamdda и items (). С помощью items () я могу получить первое значение первого уровня значения ключа (второго словаря), но не знаю, как идти дальше в словаре.

sorted(dict.items(), key = lambda x: x[1]... )

Есть ли возможность переупорядочить весь словарь, сортируя вложенные словари по значению 'common_RMSD'? Так что, когда я перебираю их в цикле, первый словарь имеет самое низкое значение common_RMSD? Если нет, тогда выведите кортеж с ('common_sup', 'common_sample_chain_ID', 'common_ref_chain_ID', 'common_RMSD')), снова упорядоченный как 'common_RMSD'

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