sorted
是 Python 的内置函数,用于对所有可迭代的对象(如列表、元组、字符串、集合等)进行排序操作,并返回一个新的已排序的列表。它不会修改原数据,而是生成一个新的排序后的列表。
1. 基本用法
sorted()
函数的基本语法格式如下:
sorted(iterable, key=None, reverse=False)
iterable
:指定需要进行排序的可迭代对象。key
:可选参数,用于指定一个函数,该函数作用于iterable
中的每个元素,并返回一个用于排序的值。reverse
:布尔值,默认为False
,表示升序排序;若设置为True
,则表示降序排序。
2. 参数说明
iterable
参数:这是必须提供的参数,可以是任何可迭代的对象。例如:python复制sorted([5, 2, 3, 1, 4]) # 输出: [1, 2, 3, 4, 5]
key
参数:通过提供一个函数,可以根据元素的特定属性进行排序。例如:python复制students = [("Alice", 22), ("Bob", 20), ("Charlie", 25)] sorted(students, key=lambda x: x[1]) # 根据年龄排序: [('Bob', 20), ('Alice', 22), ('Charlie', 25)]
reverse
参数:用于控制排序的顺序。例如:python复制sorted([1, 3, 2], reverse=True) # 输出: [3, 2, 1]
3. 排序规则
- 默认情况下,
sorted()
函数按照升序对元素进行排序。 - 如果元素是不可直接比较的类型,可以通过
key
参数指定排序依据。 - 对于字典,排序会根据键(key)进行排序,而不是值(value)。
4. 返回值
sorted()
函数返回一个新的列表,该列表是输入的可迭代对象排序后的结果。如果原对象是不可排序的(如字典),sorted()
会首先将其转换为可排序的形式(如列表),然后进行排序。
5. 使用场景
- 列表排序:将无序的列表转换为有序列表。
- 复杂排序:根据对象的特定属性或条件进行排序。
- 多字段排序:结合
key
参数,可以同时根据多个条件排序。
总结
sorted()
函数是 Python 中强大的排序工具,能够处理各种可迭代对象,并支持灵活的排序规则和条件。通过合理使用 key
和 reverse
参数,可以满足多种排序需求。