和后面的排序算法拆开食用了
1、使用python内置函数sort()、sorted()
a)、基础使用(默认升序)
第一种: 直接调用 内建函数 sorted()
方法可以快速完成升序排序。它返回一个新的list。
- 可以接受参数
reverse
(False表示升序)
例如:
sorted([2,1,13,44,3,42,3])
[1, 2, 3, 3, 13, 42, 44]
第二种:也可以使用 内建方法 list.sort()
的方法来完成上述,但是此时list自身会被改变。
- 如果不需要保留原列表,此方法更好
- 返回值为None
- 可以接受参数
reverse
(False表示升序)
例如:
a=[2,1,13,44,3,42,3]
a.sort()
print(a)
[1, 2, 3, 3, 13, 42, 44]
PS:
- 需要注意的是list.sort()方法仅被定义在list中,而sorted()可用于任何一个可迭代对象
b)、扩展
从Python2.4开始,list.sort() 和 sorted() 都增加了一个 ‘key’ 参数,主要用来在进行比较之前,指定每个列表元素上要调用的函数。
key应该是一个函数,其接收一个参数,并且返回一个用于排序依据的key。其执行效率很高,因为对于输入记录key function能够准确的被调用。
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
# 使用对象的下标作为key:
sorted( student_tuples, key=lambda student: student[2] ) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
# 使用对象的属性作为key:
sorted(student_objects, key=lambda student: student.age) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
c)、稳定性分析
从python2.2之后,sorted()
是保障了稳定性的。