【python里的sorted】在Python中,`sorted()` 是一个非常常用且强大的内置函数,用于对可迭代对象(如列表、元组、字典等)进行排序。它不会改变原始数据,而是返回一个新的已排序的列表。下面是对 `sorted()` 函数的总结和使用示例。
一、`sorted()` 函数简介
- 作用:对可迭代对象进行排序,返回一个新的排序后的列表。
- 特点:
- 不会修改原数据。
- 支持多种数据类型(如数字、字符串、元组等)。
- 可以自定义排序方式(如升序、降序、根据键值等)。
- 语法:
```python
sorted(iterable, , key=None, reverse=False)
```
二、常见用法与参数说明
参数 | 类型 | 说明 |
`iterable` | 可迭代对象 | 需要排序的数据,如列表、元组、字符串、字典等。 |
`key` | 函数 | 用于指定排序的依据,可以是内置函数或自定义函数。 |
`reverse` | 布尔值 | 是否降序排列,默认为 `False`(升序)。 |
三、使用示例
示例代码 | 输出结果 | 说明 |
`sorted([3, 1, 2])` | `[1, 2, 3]` | 对整数列表进行升序排序 |
`sorted(['b', 'a', 'c'])` | `['a', 'b', 'c']` | 对字符串列表进行字母顺序排序 |
`sorted((5, 3, 1))` | `[1, 3, 5]` | 对元组进行排序 |
`sorted({'a': 3, 'b': 1, 'c': 2})` | `['a', 'b', 'c']` | 对字典的键进行排序 |
`sorted([3, 1, 2], reverse=True)` | `[3, 2, 1]` | 降序排序 |
`sorted(['apple', 'banana', 'cherry'], key=len)` | `['apple', 'cherry', 'banana']` | 按字符串长度排序 |
四、进阶应用
1. 按自定义规则排序
```python
students = [('Alice', 20), ('Bob', 18), ('Charlie', 22)
sorted_students = sorted(students, key=lambda x: x[1])
输出: [('Bob', 18), ('Alice', 20), ('Charlie', 22)
```
2. 多条件排序
```python
data = [('a', 3), ('b', 1), ('a', 2), ('b', 3)
sorted_data = sorted(data, key=lambda x: (x[0], x[1]))
输出: [('a', 2), ('a', 3), ('b', 1), ('b', 3)
```
五、小结
内容 | 说明 |
功能 | 排序可迭代对象,返回新列表 |
不改变原数据 | ✅ |
支持自定义排序 | ✅(通过 `key` 参数) |
支持降序 | ✅(通过 `reverse=True`) |
适用范围 | 列表、元组、字符串、字典等 |
通过灵活使用 `sorted()`,我们可以轻松实现各种排序需求,提升代码的可读性和效率。在实际开发中,建议结合 `key` 和 `reverse` 参数来满足复杂的排序逻辑。