一个强大的Python内置函数是sorted()函数,它非常适合处理数据序列的工作。这个函数接收一个序列作为必须的输入,也可以接收一个可选的第二个关键字参数,名为reverse。反向 "参数可以被设置为 "真 "或 "假"。如果在函数调用中没有指定,'reverse'默认设置为False,意味着在排序操作中使用升序。如果你要找的是降序,那么就把反向设置为True。sorted()函数从给定序列中的项目返回一个新的排序列表。它并不修改给定的序列本身,这是需要理解的一个关键点,因为在 Python 中还有其他的排序方法,可以对数据进行原地排序。我们可以在本教程中看一下Python sorted()函数的几个例子。
按字母顺序对字符串进行升序排序
我们可以看的第一个排序例子是一个字符串的列表。所以让我们用一些著名吉他手的名字来填充一个列表。

现在让我们调用sorted()函数并传入'guitarists'变量。我们将该函数调用的结果存储在一个名为'guitarists_sorted_a'的新变量中。这个新变量现在保存着原始'guitarists'变量的升序字母版本。

sorted()函数的一个关键点是,它不会修改原始的可迭代变量。为了获得迭代器的排序版本,你可以将调用 sorted() 的返回值存储在一个新的变量中,就像我们上面看到的那样。

按字母顺序降序排序字符串
sorted()函数有一个可选的第二个参数,名为'reverse',你可以传递给它。我们可以使用值为True的'reverse'关键字,将我们的吉他手列表按字母顺序降序排序。

再一次,原来的列表没有被修改。

在一个元组中对数字进行排序
现在,让我们对一些数字使用 sorted() 函数。我们将首先添加一个'numbers'变量,并存储一些随机整数值的元组。

现在我们可以调用 sorted() 函数,并传入'numbers'变量。这个函数调用的结果被存储在一个名为'numbers_sorted_a'的新变量中。输出显示,新变量现在有从最低值到最高值排序的整数。

就像在我们的字符串例子中一样,原始的迭代器没有被修改。'numbers'变量仍然和原来一样。

我们现在的目标是将数字元组按降序排序。我们可以使用我们方便的'reverse'参数设置为True来完成这个任务。

在一个列表中对浮点进行排序
在sorted()函数的这个例子中,我们有一个浮点数字的列表。

现在我们可以通过调用sorted()函数并传入'floats'变量来得到这个列表的排序版本。结果是一个按升序排序的浮点数列表。

我们还记得如何在sorted()中使用'reverse',所以让我们也在这个浮点数列表中使用它。

使用sorted()与一个键
还有第三个参数可以与 sorted() 一起使用,那就是'key'参数。它是一个函数,作为排序比较的关键。在下一个例子中,我们从一个图元的列表开始。每个元组有两个值。当我们对这个数据结构使用 sorted() 时,它是按元组中的第一个值排序的。

如果我们想按照第二个值而不是第一个值对图元组列表进行排序呢?我们可以使用 key 函数来实现这一点。

Python sorted() 函数总结
Python sorted() 函数从一个迭代器中包含的项目中返回一个排序的列表。得到的排序默认是升序的,除非你提供'reverse=True'参数,在这种情况下,排序是降序的。
sorted() 函数的语法如下:
sorted(iterable, key=None, reverse=False)
