[英]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()
返回键/值对列表。 使用sorted
的key
参数来指示要排序的字段。 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.