# # 字典嵌套排序
students = [{'name': 'Jack', 'age': 17, 'score': 89}, {'name': 'Julia', 'age': 17, 'score': 80}, {'name': 'Tom', 'age': 16, 'score': 80}]
# 按分数排序
students.sort(key=lambda student: student['score'])
print(students)
# 按分数和年龄排序
students.sort(key=lambda student: (student['score'], student['age']))
print(students)
# 按分数降序和年龄升序
students.sort(key=lambda student: (-student['score'], student['age']))
print(students)
#[{'name': 'Julia', 'age': 17, 'score': 80}, {'name': 'Tom', 'age': 16, 'score': 80}, {'name': 'Jack', 'age': 17, 'score': 89}]
#[{'name': 'Tom', 'age': 16, 'score': 80}, {'name': 'Julia', 'age': 17, 'score': 80}, {'name': 'Jack', 'age': 17, 'score': 89}]
#[{'name': 'Jack', 'age': 17, 'score': 89}, {'name': 'Tom', 'age': 16, 'score': 80}, {'name': 'Julia', 'age': 17, 'score': 80}]
# # 单个字典
dict1 = {'a': 12, 'b': 5, 'c': 23, 'd': 40}
# 根据value升序
asc_dict = {k: v for k, v in sorted(dict1.items(), key=lambda x: x[1])}
print(asc_dict)
# 根据value降序
desc_dict = {k: v for k, v in sorted(dict1.items(), key=lambda x: x[1], reverse=True)}
print(desc_dict)
# 根据key升序
key_dict = {k: v for k, v in sorted(dict1.items(), key=lambda x: x[0])}
print(key_dict)
{'b': 5, 'a': 12, 'c': 23, 'd': 40}
{'d': 40, 'c': 23, 'a': 12, 'b': 5}
{'a': 12, 'b': 5, 'c': 23, 'd': 40}