【python中的sorted函数】在Python中,`sorted()` 是一个非常常用且功能强大的内置函数,用于对可迭代对象进行排序。它能够处理列表、元组、字符串等数据类型,并返回一个新的已排序的列表,而不会改变原始数据。
一、函数简介
| 属性 | 说明 |
| 函数名 | `sorted()` |
| 功能 | 对可迭代对象进行排序,返回一个新的列表 |
| 是否修改原数据 | 否(原数据保持不变) |
| 支持的数据类型 | 列表、元组、字符串、字典等 |
| 返回值 | 排序后的列表 |
二、基本用法
```python
sorted(iterable, , key=None, reverse=False)
```
- `iterable`:需要排序的可迭代对象。
- `key`:用于自定义排序规则的函数(如 `str.lower`)。
- `reverse`:是否降序排列(默认为 `False`,即升序)。
三、示例对比
| 示例 | 输出结果 | 说明 |
| `sorted([3, 1, 2])` | `[1, 2, 3]` | 默认升序排序 |
| `sorted([3, 1, 2], reverse=True)` | `[3, 2, 1]` | 降序排列 |
| `sorted("cba")` | `['a', 'b', 'c']` | 字符串排序 |
| `sorted((3, 1, 2))` | `[1, 2, 3]` | 元组排序 |
| `sorted({"a": 3, "b": 1, "c": 2})` | `['a', 'b', 'c']` | 字典键排序 |
四、使用 `key` 参数
`key` 参数允许我们根据自定义规则来排序。例如,按字符串长度排序:
```python
sorted(["apple", "banana", "cherry"], key=len)
输出: ['apple', 'cherry', 'banana'
```
或者忽略大小写排序:
```python
sorted(["Banana", "apple", "Cherry"], key=str.lower)
输出: ['apple', 'Banana', 'Cherry'
```
五、注意事项
- `sorted()` 不会修改原始数据,而是返回一个新列表。
- 若需对列表进行原地排序,可以使用 `list.sort()` 方法。
- 对于复杂对象(如字典或类实例),可以通过 `key` 指定排序依据。
六、总结
| 特性 | 说明 |
| 功能 | 对任意可迭代对象进行排序 |
| 返回类型 | 新的列表 |
| 原始数据 | 不被修改 |
| 自定义排序 | 使用 `key` 参数 |
| 降序支持 | 通过 `reverse=True` 实现 |
`sorted()` 是Python中处理排序任务时非常灵活和高效的工具,掌握其使用方法有助于提升代码的可读性和效率。


