python 对 dict 元素数组 list 排序

作者:admin 发布:2019-08-15 浏览:1774次

# 复杂的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)