Python3 sorted() 函数

sorted() 是 Python 中一个非常强大且灵活的内置函数,用于对可迭代对象中的元素进行排序。本章将详细介绍 sorted() 函数的使用方法、参数及其应用场景。

基本语法和用法

sorted() 函数的基本语法如下:

  • iterable:必需参数,表示需要排序的可迭代对象,如列表、元组等。
  • key:可选参数,用于指定一个函数作为排序的关键字,这个函数会被应用于 iterable 的每个元素上,并根据其返回值来排序。
  • reverse:可选参数,默认为 False,表示升序排序;如果设置为 True,则表示降序排序。

示例

下面是一个简单的示例,展示如何使用 sorted() 对一个列表进行排序:

在这个例子中,我们没有提供 keyreverse 参数,因此默认按照升序排列。

使用关键字参数 key

key 参数允许我们自定义排序规则。这在处理复杂数据结构时特别有用。例如,如果我们有一个包含字典的列表,并希望根据字典中的某个键值来排序,我们可以这样做:

-- -------------------- ---- -------
-------- - -
    -------- -------- ------ ----
    -------- ------ ------ ----
    -------- ---------- ------ ---
-

- -- --- ----
---------------------- - ---------------- ---------- -- ---------
-----------------------------
- ---
- --------- ------ ------ ---- -------- -------- ------ ---- -------- ---------- ------ ----
展开代码

这里,我们使用了 lambda 函数作为 key 参数,指定了排序依据为字典中的 "age" 键值。

排序字符串列表

除了数字和字典,sorted() 还可以用来对字符串列表进行排序。默认情况下,字符串会按照字母顺序排序:

如果你想按字符串长度排序,可以通过指定 key 参数实现:

处理元组和集合

sorted() 函数同样适用于元组和集合。对于元组,结果仍然是一个列表形式:

对于集合,由于集合本身是无序的,所以排序后的结果总是列表形式:

反向排序

通过设置 reverse 参数为 True,我们可以轻松地获得降序排序的结果:

多级排序

有时候我们需要根据多个字段进行排序,这时可以使用嵌套的 key 函数或 tuple 结构来实现。例如,先按年龄排序,再按名字排序:

-- -------------------- ---- -------
-------- - -
    -------- -------- ------ ----
    -------- ------ ------ ----
    -------- ---------- ------ ----
    -------- -------- ------ ---
-

- -- --- ----- ---- --
--------------------------- - ---------------- ---------- -- ---------- -----------
----------------------------------
- ---
- --------- -------- ------ ---- -------- ------ ------ ---- -------- -------- ------ ---- -------- ---------- ------ ----
展开代码

总结

通过本章的学习,你应该掌握了 sorted() 函数的基本用法以及如何利用它对各种类型的数据进行排序。无论是简单的数字列表还是复杂的嵌套数据结构,sorted() 都能提供强大的支持。希望这些知识对你理解和使用 Python 编程有所帮助。

纠错
反馈

纠错反馈