想必看到本篇博文的老师们,在学习或工作中,肯定遇到了类似疑问???
- 指定 一个条件 对列表进行排序 So easy!
- 那对 多个条件 又该怎么实现排序呢?今天看完本博文,你依然会感觉到 So easy!
---- Nick.Peng
# -*- coding: utf-8 -*-
# @Author: Nick.Peng
# @Date: 2019-10-21 15:34:08
# @Last Modified by: Nick.Peng
# @Last Modified time: 2019-10-21 15:51:31
class_list = [{'class_id': 2, 'class_name': '初中物理班', 'stu_num': 2, 'site': 1},
{'class_id': 1, 'class_name': '高中数学班', 'stu_num': 2, 'site': 3},
{'class_id': 3, 'class_name': '初中数学班', 'stu_num': 1, 'site': 2},
{'class_id': 4, 'class_name': '初中数学班1', 'stu_num': 0, 'site': 4},
{'class_id': 5, 'class_name': '初中物理班1', 'stu_num': 0, 'site': 4},
{'class_id': 6, 'class_name': '高中数学班1', 'stu_num': 1, 'site': 4}]
# ====== 方法一:======(利用list的sort方法,在原数据基础上进行排序)
# class_list.sort(key=lambda x: (x['site'])) # 按一个条件排序
class_list.sort(key=lambda x: (x['site'], -x["stu_num"])) # 按多个条件排序
print(class_list)
# ====== 方法二:======(利用Python高阶函数sorted进行排序)
# cls_li = sorted(class_list, key=lambda x: (x["site"], -x["stu_num"]))
# print(cls_li)
# 输出结果:
[{'class_id': 2, 'class_name': '初中物理班', 'stu_num': 2, 'site': 1},
{'class_id': 3, 'class_name': '初中数学班', 'stu_num': 1, 'site': 2},
{'class_id': 1, 'class_name': '高中数学班', 'stu_num': 2, 'site': 3},
{'class_id': 6, 'class_name': '高中数学班1', 'stu_num': 1, 'site': 4},
{'class_id': 4, 'class_name': '初中数学班1', 'stu_num': 0, 'site': 4},
{'class_id': 5, 'class_name': '初中物理班1', 'stu_num': 0, 'site': 4}]
如果对各位的学习和工作有帮助,记得点 赞 额 ~ ~ ~