pin_drop当前位置:知识文库 ❯ 图文

Python高阶函数sorted详解 - 自定义排序规则

概述

sorted()是Python内置的排序函数,它返回一个新的已排序列表。sorted可以接收key参数指定排序规则,也可以接收reverse参数控制升序或降序。

语法

代码示例

sorted(iterable, *, key=None, reverse=False)

基本用法

代码示例

nums = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_nums = sorted(nums)
print(sorted_nums)

降序排列

代码示例

nums = [3, 1, 4, 1, 5, 9, 2, 6]
desc = sorted(nums, reverse=True)
print(desc)

自定义排序规则

代码示例

students = [("Alice", 25), ("Bob", 20), ("Charlie", 23)]
by_age = sorted(students, key=lambda x: x[1])
print(by_age)

多重排序

代码示例

data = [("a", 3), ("b", 1), ("c", 2), ("d", 1)]
result = sorted(data, key=lambda x: (x[1], x[0]))
print(result)

注意事项

提示:sorted返回新列表,不修改原列表。原列表的sort()方法是原地排序。key参数指定排序规则。reverse控制升序降序。

小结

  • sorted返回新的已排序列表:不会修改原始数据

  • 不修改原列表:保持原始数据的完整性

  • key参数指定排序规则:可自定义排序依据

  • reverse控制升序降序:False为升序,True为降序

练习题

练习1

使用sorted对字典按键排序

练习2

使用sorted对字符串列表按长度排序

常见问题

sorted()和list.sort()有什么区别?

sorted()返回一个新的已排序列表,不修改原列表,可接收任何可迭代对象;list.sort()是列表的方法,直接在原列表上排序,返回None,只能用于列表。

key参数如何自定义排序规则?

key参数接收一个函数,该函数会对每个元素进行处理,sorted按照处理后的返回值进行排序。可以使用lambda表达式或自定义函数。

如何实现多重排序?

在key参数中返回一个元组,元组中的元素依次作为第一、第二、第三排序依据。Python会按照元组元素的顺序依次比较。

sorted可以排序不同类型的数据吗?

可以,但需要通过key参数将不同类型转换为可比较的类型。直接比较不同类型会抛出TypeError,使用key可以统一比较标准。

标签: sorted 高阶函数 排序 key参数 Python函数

本文涉及AI创作

内容由AI创作,请仔细甄别

list快速访问

上一篇: Python高阶函数reduce详解 - functools模块 下一篇: Python偏函数partial详解 - functools模块参数固定

poll相关推荐