sorted(iterable, *, key=None, reverse=False)

根据 iterable 中的项返回一个新的已排序列表。

具有两个可选参数,它们都必须指定为关键字参数。

key 指定带有单个参数的函数,用于从 iterable 的每个元素中提取用于比较的键 (例如 key=str.lower)。 默认值为 None (直接比较元素)。

reverse 为一个布尔值。 如果设为 True,则每个列表元素将按反向顺序比较进行排序。

使用 functools.cmp_to_key() 可将老式的 cmp 函数转换为 key 函数。

内置的 sorted() 确保是稳定的。 如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其为稳定的 — 这有利于进行多重排序(例如先按部门、再按薪级排序)。

参数:

  • iterable — 可迭代对象。
  • cmp — 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
  • key — 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
  • reverse — 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

sort 与 sorted 区别:

  1. sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
  2. list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

实例:

a = [5, 7, 6, 3, 4, 1, 2]
b = sorted(a)
print(a)
print(b)

以上代码输出结果为:

[5, 7, 6, 3, 4, 1, 2]
[1, 2, 3, 4, 5, 6, 7]

实例:

a = [("b", 2), ("a", 1), ("c", 3), ("d", 4)]
b = sorted(a, key=lambda x: x[1])

students = [("小明", "A", 15), ("小华", "B", 12), ("小红", "B", 10)]
students01 = sorted(students, key=lambda s: s[2])  # 按年龄升序
students02 = sorted(students, key=lambda s: s[2], reverse=True)  # 按年龄降序

print(b)
print(students01)
print(students02)

以上代码输出结果为:

[('a', 1), ('b', 2), ('c', 3), ('d', 4)]
[('小红', 'B', 10), ('小华', 'B', 12), ('小明', 'A', 15)]
[('小明', 'A', 15), ('小华', 'B', 12), ('小红', 'B', 10)]
0条评论

相关推荐

Python标准库——文本处理

对Python程序员来说,最显而易见的文本处理工具就是str类,不过除此以...

标准库 2019-05-25 16:30:08

Collections内置库

python collections内置库学习资料

标准库 2019-05-31 14:36:15

Python标准库——日期和时间

不同于int、float和str,Python 没有包含对应日期和时间的原...

标准库 2019-05-31 14:36:30

Python标准库——加密

加密可以保护消息安全,以便验证其正确性并保护消息不被截获。Python的加...

标准库 2019-06-03 10:21:54

Python标准库——文件系统

Python的标准库包括大量工具,可以处理文件系统中的文件,构造和解析文件...

标准库 2019-06-03 14:53:37