Python sorted() 函数:排序列表和元组286


在 Python 中,sorted() 函数是一个内置函数,用于对序列(列表、元组、集合等)进行排序。它返回一个新的已排序列表,而不会修改原始序列。

语法

sorted() 函数的语法如下:```
sorted(iterable, key=None, reverse=False)
```
其中:
* iterable:要排序的序列。
* key:一个可选的函数,用于指定排序依据。
* reverse:一个布尔值,表示是否按降序排序(默认值为 False,表示按升序排序)。

用法

使用 sorted() 函数非常简单。只需传递一个序列作为参数,它就会返回一个已排序的新列表。例如:```python
# 排序列表
my_list = [5, 2, 1, 4, 3]
sorted_list = sorted(my_list)
print(sorted_list) # 输出:[1, 2, 3, 4, 5]
```

按降序排序,只需要将 reverse 参数设置为 True:```python
# 按降序排序列表
sorted_list = sorted(my_list, reverse=True)
print(sorted_list) # 输出:[5, 4, 3, 2, 1]
```

使用 key 参数

key 参数是一个可选的函数,用于指定排序依据。如果未提供 key 参数,则元素将按其自然顺序排序。可以传递一个函数作为 key 参数,该函数将应用于每个元素,排序结果将基于函数的返回值。

例如,以下代码对单词列表按长度排序:```python
# 按单词长度排序列表
my_list = ['apple', 'banana', 'cherry', 'dog', 'elephant']
sorted_list = sorted(my_list, key=len)
print(sorted_list) # 输出:['dog', 'apple', 'banana', 'cherry', 'elephant']
```

在上面的示例中,key 参数设置为 len,它是一个内置函数,返回字符串的长度。因此,列表按单词长度排序。

复杂度

sorted() 函数的复杂度为 O(n log n),其中 n 是序列中的元素数量。这意味着随着序列大小的增加,排序时间也会呈指数级增长。

替代方法

除了 sorted() 函数,还可以使用 () 方法对列表进行原址排序。这会修改原始列表,而不是返回一个新的已排序列表。此外,还可以使用 heapq 模块中的 nlargest() 和 nsmallest() 函数来获取序列中的最大或最小 n 个元素。

sorted() 函数是 Python 中一个强大的工具,用于对序列进行排序。它提供了对排序过程的灵活性,并允许使用 key 参数指定自定义排序依据。对于需要对数据进行排序的任何情况,sorted() 函数都是一个方便且高效的选择。

2024-10-11


上一篇:Python 函数指南:创建、使用和理解

下一篇:Python函数:功能的强大工具