# 复杂的dict
lst = [ {'level': 20, 'star': 40, 'time': 2}, {'level': 20, 'star': 40, 'time': 3}, {'level': 20, 'star': 40, 'time': 4}, {'level': 20, 'star': 40, 'time': 5}, {'level': 19, 'star': 36, 'time': 1}, {'level': 18, 'star': 40, 'time': 1} ]
# 需求:
# level 越大越靠前;
# level 相同, star 越大越靠前;
# level 和 star 相同, time 越小越靠前;
# 先按time排序
lst.sort(key=lambda k: (k.get('time', 0)))
# 再按照level和star顺序
lst.sort(key=lambda k: (k.get('level', 0), k.get('star', 0)), reverse=True)
Comments (0)