python sort和sorted函数
时间: 2025-07-04 13:19:50 浏览: 11
在 Python 中,`list.sort()` 方法与 `sorted()` 函数是两种常用的排序方式,它们都可以对列表进行排序,但在使用方式和功能上存在一些关键区别。
### `list.sort()` 方法
- `list.sort()` 是列表对象的一个方法,它会就地修改原始列表,使其按照升序排列。此方法没有返回值(即返回 `None`)[^2]。
- 由于该方法直接修改原始列表,因此适用于不需要保留原列表的情况。
- 示例代码如下:
```python
list_a = [1, 2, 8, 3, 7, 9, 5, 7]
list_a.sort()
print("list_a after sorting:", list_a) # 输出排序后的列表
```
### `sorted()` 函数
- `sorted()` 是一个内置函数,可以接受任何可迭代对象(如列表、元组等),并返回一个新的已排序列表。原始数据不会被修改[^1]。
- 该函数适合需要保留原始数据,并获取排序后结果的场景。
- 示例代码如下:
```python
list_a = [1, 2, 8, 3, 7, 9, 5, 7]
list_b = sorted(list_a)
print("Original list_a:", list_a) # 原始列表未被修改
print("Sorted list_b:", list_b) # 新列表包含排序后的值
```
### 参数支持
两者都支持 `key` 和 `reverse` 参数用于自定义排序规则:
- `key`:指定一个函数,该函数将作用于每个元素上,再根据函数结果进行排序。
- `reverse`:布尔值,若为 `True`,则按降序排列,默认为 `False`(升序)。
示例:按字符串长度排序
```python
words = ["apple", "banana", "cherry", "date"]
words.sort(key=len)
print("Sorted by length:", words)
words_sorted = sorted(words, key=len, reverse=True)
print("Sorted by length descending:", words_sorted)
```
### 总结
- 若需在不创建新对象的情况下修改原列表,使用 `list.sort()`。
- 若希望保持原列表不变并获得新的排序结果,则使用 `sorted()`。
阅读全文
相关推荐


















