Python sorted() 函数

2024 年 9 月 26 日 | 阅读 6 分钟

Python sorted() 函数用于对元素的序列进行排序。sorted() 函数可以轻松地按升序或降序对各种数据结构或复杂对象进行排序。默认情况下,它按升序对元素进行排序。

sorted 函数接受三个参数,并返回一个已排序的列表。对于字典,它返回一个已排序的键列表。sorted 函数的时间复杂度为 O(n logn)。

sorted 函数不会对传入的序列进行排序,而是创建一个新的已排序列表。要对序列进行排序,请使用 sort 函数而不是 sorted 函数。

在本文中,我们将探讨 sorted 函数在不同场景下的复杂性、应用、优点和实用性。

sorted 函数的签名或语法如下所示

签名或语法

参数

  • iterable: 这是一个必需的参数,表示一个可迭代对象。
  • key: 这是一个可选参数,表示一个函数。默认值为 None。
  • reverse: 这也是一个可选的布尔参数,默认值为 'False'。可以将 reverse 参数设置为 'True' 以按反向顺序获取已排序的列表。

返回

它返回一个包含按排序顺序排列的元素的新列表。

让我们看一些 sorted() 函数的示例来理解它的功能。

Python sorted() 函数示例 1 - 对字符串元素进行排序

在这里,在本例中,我们正在对字符串对象进行排序,以理解 sorted 函数背后的思想。

输出

Sorted String Elements: ['a', 'a', 'i', 'j', 'n', 'o', 'p', 't', 't', 'v']

说明

在上面的示例中,sorted 函数按字母顺序对字符串 "javatpoint" 中的每个字母进行排序,并返回一个包含按排序顺序排列的元素的列表。

Python sorted() 函数示例 2 - 使用 sorted 函数对列表、元组和字典元素进行排序

我们可以使用 sorted 函数对任何可迭代对象(如列表、元组或字典)进行排序。请参阅以下示例。

输出

Sorted List elements: [56, 98, 622, 659, 1002, 2003, 3652]
Sorted Tuple Elements: [21, 232, 2500, 2578, 3698, 5264]
Sorted Dictionary Keys: [1, 2, 3, 4]

说明

在上面的示例中,sorted 函数对列表和元组的元素进行排序并返回单独的已排序列表。对于字典,它只对键进行排序,并返回一个包含按排序顺序排列的键的列表。

Python sorted() 函数示例 3 - 使用 sorted 函数按反向顺序对列表元素进行排序

要按反向顺序(降序)对列表进行排序,请在 reverse 参数中传递 True,我们将获得按反向顺序排序的列表。

输出

Sorted list elements: [3652, 2003, 1002, 659, 622, 98, 56]

说明

在上面的示例中,我们在 reverse 参数中传递了 True,它将列表元素按反向或降序排序,并返回一个包含按降序排列的元素的列表。

Python sorted() 函数示例 4 - 使用 Lambda 函数探索 Key 参数

key 参数用于自定义排序标准。key 参数接受一个函数,该函数为每个元素生成一个称为比较键的键。这里发生的是,key 函数从可迭代对象中获取每个元素,并根据传递的函数为该元素生成一个相应的比较键。sorted 函数在排序过程中使用这些比较键。

key 参数默认设置为 None。例如,当您需要根据字符串长度对字符串列表进行排序时。您可以将 'len' 函数作为 key 参数传递。

在这里,我们通过在调用期间将 lambda 函数传递给 key 来对元组列表进行排序,该 lambda 函数返回每个元组的元素之和。

输出

Sorted list of tuples: [(3, 5), (8, 5), (2, 15), (65, 5)]

说明

在上面的示例中,sorted 函数根据其元素之和对元素(元组)进行排序。lambda 函数从 key 中获取每个元素(元组),并返回相应的总和值作为比较键。sorted 函数使用这些键对列表的元素进行排序。

Python sorted() 函数示例 5 - 使用简单函数探索 Key 参数

在此示例中,我们将 sum 函数而不是 lambda 函数作为 key 参数传递给相同的示例。

输出

Sorted list of tuples: [(3, 5), (8, 5), (2, 15), (65, 5)]

说明

在 Python 中,sum 是一个内置函数,它返回值的总和。在上面的示例中,key 参数从列表中获取每个元组,并将其传递给 sum 函数。sum 函数返回每个元组的相应总和值。然后,sorted 函数在排序过程中将这些总和值用作比较键。

sorted 函数的优点

以下是 sorted 函数的一些潜在优点:

  1. 易于使用 - sorted 函数非常易于使用。它只需要一个强制参数,即可迭代对象,其他参数 key 和 reverse 可用于自定义排序。
  2. 不可变性 - 排序函数会创建一个新的已排序列表,而不会改变传入的序列。当我们想要排序的数据并且不影响原始数据时,此功能可能很有用。
  3. 可自定义排序 - key 参数可用于设置排序标准。通过使用此功能,我们可以轻松自定义排序过程。此外,我们还可以使用 reverse 参数按反向顺序对数据进行排序。

sorted 函数的应用

sorted 函数的一些常见应用列出如下:

  1. 数据分析 - 在需要排序数据的地方,sorted 函数经常被使用。通过使用 sorted 函数,数据分析师可以轻松生成见解。
  2. 自定义排序 - 当我们想对复杂对象进行排序时,我们可以使用 key 功能来设置我们特定需求的排序标准。
  3. 显示结果 - 当我们想向用户以排序的方式显示结果时,我们可以使用 sorted 函数对数据进行排序。

结论

借助 Python 的 sorted() 函数,我们可以快速有效地对各种数据结构进行排序。由于其灵活性和简单性,它可以用于各种排序情况,从简单的列表和字符串到复杂的对象。通过使用 key 参数,我们可以根据特定需求自定义排序过程。Python 中的 sorted() 函数提供了一种可靠且简单的数据组织方法,使其成为任何编码人员的宝贵工具。


下一主题Python Set