繁体   English   中英

对复杂的嵌套字典进行排序

[英]Sort a complex nested dictionary

考虑这种字典格式,我如何按 WEIGHT 或 HEIGHT 键对这个复杂的嵌套字典进行排序:

People = {
     'person1': {
          'name': 'John Cena',
          'size': {
              'height': 175,
              'weight': 100
           }
      },
      'person2': {
          'name': 'Chuck Norris',
           'size': {
               'height': 180,
               'weight': 90
           }
      },
      'person3': {
          'name': 'Jon Skeet',
          'size': {
              'height': 185,
              'weight': 110
          }
      }
}

字典无法排序,但.items()返回键/值对列表。 使用sortedkey参数来指示要排序的字段。 Python 3.7 及更高版本允许字典维护插入顺序,因此将结果转换回字典将被排序:

>>> People = { 'person1': { 'name': 'John Cena', 'size': { 'height': 175, 'weight': 100 } }, 'person2': { 'name': 'Chuck Norris', 'size': { 'height': 180, 'weight': 90 } }, 'person3': { 'name': 'Jon Skeet', 'size': { 'height': 185, 'weight': 110 } } }
>>> dict(sorted(People.items(),key=lambda x: x[1]['size']['weight']))
{'person2': {'name': 'Chuck Norris', 'size': {'height': 180, 'weight': 90}}, 'person1': {'name': 'John Cena', 'size': {'height': 175, 'weight': 100}}, 'person3': {'name': 'Jon Skeet', 'size': {'height': 185, 'weight': 110}}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM