Mar*_*tin 4 python sorting dictionary
我有以下结构:
structure = {
'pizza': {
# other fields
'sorting': 2,
},
'burger': {
# other fields
'sorting': 3,
},
'baguette': {
# other fields
'sorting': 1,
}
}
Run Code Online (Sandbox Code Playgroud)
从这个结构我需要外部字典的键按sorting内部字典的字段排序,所以输出是['baguette', 'pizza', 'burger'].
有一个简单的方法来做到这一点?
该list.sort()方法和sorted()内置函数取key参数,它是一个这就是所谓的对每个项目进行排序的功能,并且该项目是基于keyfunction的返回值进行排序.因此,编写一个接受键入的函数structure并返回要排序的事物:
>>> def keyfunc(k):
... return structure[k]['sorting']
...
>>> sorted(structure, key=keyfunc)
['baguettes', 'pizza', 'burger']
Run Code Online (Sandbox Code Playgroud)
您可以使用sorted内置功能.
sorted(structure.keys(), key = lambda x: structure[x]['sorting'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3573 次 |
| 最近记录: |