Python基础9 排序
list可通过内置sort()函数排序
a = [5, 2, 3, 1, 4]
a.sort()
其他容器或迭代器可通过sorted()排序
sorted([5, 2, 3, 1, 4])
sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
待排序数据
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
key参数(通过函数指定用于容器排序的key)
sorted(student_tuples, key=lambda student: student[2])
key参数(通过operator模块指定用于容器排序的key)
sorted(student_tuples, key=itemgetter(2))
sorted(student_objects, key=attrgetter('age'))
reverse参数(正序逆序)
sorted(student_tuples, key=itemgetter(2), reverse=True)
cmp参数(不推荐使用)
def reversed_cmp(x, y):
if x > y:
return -1
if x < y:
return 1
return 0
sorted([36, 5, 12, 9, 21], reversed_cmp)