python3 list 自定义排序
python2 自定义排序
在python2中,我们可以使用cmp进行自定义排序,当时在python3中却取消了这个参数。
def cmp(x1, x2):
...
a.sort(cmp)
python3 自定义排序
参考 Masker的做法,可以使用以下方式进行自定义排序。
def cmp(x1, x2):
if x1['score'] != x2['score']: # 如果score不同
return x1['score'] < x2['score'] # 那么小的在前面
else: # 如果score相同
return x1['name'] < x2['name'] # 那么名字字典序小的在前面
# 注意这里默认score和name不会同时相同
import functools
a.sort(key=functools.cmp_to_key(cmp))