Python3:按值对三级嵌套字典进行排序

时间:2019-03-17 19:35:08

标签: python sorting dictionary lambda

我一直在尝试对字典(三级)的字典进行排序,但是没有运气。我需要按“ 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'排序

0 个答案:

没有答案