python:sorted
sorted
(iterable, *, key=None, reverse=False)
从iterable中返回一个新的排序列表。
有两个可选参数,必须指定为关键字参数。
键指定一个参数的函数,用于从每个列表元素中提取比较键:key=str.lower。默认值是None(直接比较元素)。
反向是布尔值。如果设置为True,那么列表元素就会被排序,好像每个比较都是相反的。
使用functools.cmp_to_key()将旧式的cmp函数转换为一个键函数。
内置的排序()函数保证是稳定的。一个排序是稳定的,如果它保证不更改比较相等的元素的相对顺序—这有助于在多个传递中进行排序(例如,按部门排序,然后按工资级别排序)。
实例:
>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]
>>> students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>> sorted(students, key=lambda s: s[2]) # 按年龄排序
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
>>> sorted(students, key=lambda s: s[2], reverse=True) # 按降序
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]
>>>