问题:
假如你遇到以下的情形,有一张以json格式存在的学生成绩列表(score_list) 的
需要按照成绩从高到低排列.
[ { "name": "张全蛋", "score": 78 }, { "name": "李子柒", "score": 66 }, { "name": "李永乐", "score": 98 }, { "name": "麦小登", "score": 88 }]
解决方法:
import jsonscores = json.loads(score_list)result = sorted(scores,key=lambda x: x['score'],reverse=True)print(json.dumps(result,indent=4))
运行结果:
fang[{'name': '李永乐','score': 98}, {'name': '麦小登','score': 88}, {'name': '张全蛋','score': 78}, {'name': '李子柒','score': 66}]
小贴士:
sorted 语法:
sorted(iterable, key=None, reverse=False)
参数说明:
- iterable -- 可迭代对象。
- key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。