我有以下结构:
structure = {
'pizza': {
# other fields
'sorting': 2,
},
'burger': {
# other fields
'sorting': 3,
},
'baguette': {
# other fields
'sorting': 1,
}
}
从这个结构中我需要外部字典的键按内部字典的sorting
字段排序,因此输出为['baguette', 'pizza', 'burger']
。
有足够简单的方法吗?
答案 0 :(得分:9)
list.sort()
方法和sorted()
内置函数采用key
参数,该参数是为每个要排序的项目调用的函数,并且项目已排序基于该键函数的返回值。因此,编写一个函数,该函数在structure
中获取一个键并返回您要排序的内容:
>>> def keyfunc(k):
... return structure[k]['sorting']
...
>>> sorted(structure, key=keyfunc)
['baguettes', 'pizza', 'burger']
答案 1 :(得分:7)
您可以使用sorted
内置功能。</ p>
sorted(structure.keys(), key = lambda x: structure[x]['sorting'])