内置函数sorted根据 iterable 中的项返回一个新的有序的列表,它不仅可以对列表进行排序,对其他的可迭代对象也能排序,因此相比于列表的sort方法有更广的适用范围。
sorted(iterable, key=None, reverse=False)
列表
比较元素大小
lst = [5, 2, 1, 3]
sort_lst = sorted(lst, reverse=True)
print(sort_lst) # [5, 3, 2, 1]
如果列表里的元素无法直接比较大小,可以使用key参数从每个元素中提取用于比较大小的key。
lst = [
{'name': '小明', 'score': 97},
{'name': '小红', 'score': 90},
{'name': '小刚', 'score': 95},
]
sort_lst = sorted(lst, key=lambda x: x['score'])
for item in sort_lst:
print(item)
列表里存储的是字典,两个字典之间不能直接比较大小,想要对他们进行排序,就必须指定两个字典之间比较大小时使用哪个具体的值,我在代码里指定使用score来代表字典进行大小比较。程序输出结果
{'name': '小红', 'score': 90}
{'name': '小刚', 'score': 95}
{'name': '小明', 'score': 97}
QQ交流群: 211426309