mlu*_*bke 8 python dictionary list
我有一个字典的python列表:
mylist = [
{'id':0, 'weight':10, 'factor':1, 'meta':'ABC'},
{'id':1, 'weight':5, 'factor':1, 'meta':'ABC'},
{'id':2, 'weight':5, 'factor':2, 'meta':'ABC'},
{'id':3, 'weight':1, 'factor':1, 'meta':'ABC'}
]
Run Code Online (Sandbox Code Playgroud)
什么是最有效/最干净的方式来按重量排序该列表然后因素(数字).结果列表应如下所示:
mylist = [
{'id':3, 'weight':1, 'factor':1, 'meta':'ABC'},
{'id':1, 'weight':5, 'factor':1, 'meta':'ABC'},
{'id':2, 'weight':5, 'factor':2, 'meta':'ABC'},
{'id':0, 'weight':10, 'factor':1, 'meta':'ABC'},
]
Run Code Online (Sandbox Code Playgroud)
dF.*_*dF. 23
mylist.sort(key=lambda d: (d['weight'], d['factor']))
Run Code Online (Sandbox Code Playgroud)
要么
import operator
mylist.sort(key=operator.itemgetter('weight', 'factor'))
Run Code Online (Sandbox Code Playgroud)