Python 中的 sorted() 函数:深入指南61


Python 中的 sorted() 函数是一个内置函数,用于对可迭代对象中的元素进行排序。它返回一个已排序的新列表,而不修改原始列表。sorted() 函数提供了灵活的排序选项,包括自定义排序标准和反向排序的能力。

语法:

sorted(iterable, key=None, reverse=False)
iterable:要排序的可迭代对象(例如列表、元组或字符串)。
key:一个可选的函数,用于指定排序标准。它应该接受一个元素作为参数并返回一个值,该值用于比较元素。
reverse:一个布尔值,指定是否以反向顺序排序。默认值为 False(升序排序)。

工作原理

sorted() 函数采用一个可迭代对象并将其转换为列表。它使用归并排序算法递归地将列表拆分为较小的片段,直到它们包含单个元素。然后,它将这些较小的片段合并回一个有序的列表。如果指定了 key 函数,则它将用于比较元素以确定它们在有序列表中的位置。

自定义排序标准

使用 key 参数,您可以定义自定义的排序标准。此函数应接受一个元素作为参数并返回一个值,该值用于比较元素。例如,要根据字符串长度排序列表中的字符串,您可以使用以下 key 函数:

def by_length(s):
return len(s)

然后,您可以使用此 key 函数对列表进行排序:

sorted_list = sorted(list_of_strings, key=by_length)

反向排序

要以反向顺序排序列表,请将 reverse 参数设置为 True。这将对列表中的元素按降序排序。例如,要以降序排序列表中的数字,您可以使用以下代码:

sorted_list = sorted(list_of_numbers, reverse=True)

示例

以下是一些 sorted() 函数的示例:

# 对列表中的数字进行升序排序
sorted_list = sorted([3, 1, 2])
print(sorted_list) # 输出:[1, 2, 3]

# 使用key函数对字符串列表按长度排序
sorted_list = sorted(["apple", "banana", "cherry"], key=len)
print(sorted_list) # 输出:['apple', 'cherry', 'banana']

# 以降序排序浮点数列表
sorted_list = sorted([2.5, 1.2, 3.1], reverse=True)
print(sorted_list) # 输出:[3.1, 2.5, 1.2]

Python 中的 sorted() 函数是一个强大的工具,可用于对可迭代对象中的元素进行排序。它提供了灵活的排序选项,包括自定义排序标准和反向排序的能力。通过了解其语法和工作原理,您可以有效地使用 sorted() 函数来处理各种数据排序任务。

2024-10-17


上一篇:Python 中读取文件名称的终极指南

下一篇:Python 正则表达式:巧妙截取字符串