当前位置:首页 > Python > 正文

Python sorted函数详解(小白也能轻松掌握的排序神器)

Python sorted函数的世界里,排序从未如此简单!无论你是编程新手还是有一定经验的开发者,掌握sorted()函数都能让你的数据处理更高效、代码更简洁。本教程将从基础到进阶,手把手教你如何使用sorted()对各种数据进行排序。

Python sorted函数详解(小白也能轻松掌握的排序神器) sorted函数 sorted排序 Python列表排序 sorted函数用法 第1张

什么是 sorted() 函数?

sorted() 是 Python 内置的一个函数,用于对可迭代对象(如列表、元组、字符串等)进行排序,并返回一个新的已排序的列表。它不会修改原始数据,这一点与列表的 .sort() 方法不同。

基本语法

sorted(iterable, *, key=None, reverse=False)
  • iterable:要排序的可迭代对象(如列表、元组等)。
  • key(可选):一个函数,用于从每个元素中提取比较键。
  • reverse(可选):布尔值,若为 True 则按降序排列,默认为 False(升序)。

基础用法示例

最简单的用法是对数字列表或字符串列表进行排序:

# 对数字列表排序numbers = [3, 1, 4, 1, 5, 9]sorted_numbers = sorted(numbers)print(sorted_numbers)  # 输出: [1, 1, 3, 4, 5, 9]# 对字符串列表排序words = ['banana', 'apple', 'cherry']sorted_words = sorted(words)print(sorted_words)  # 输出: ['apple', 'banana', 'cherry']

使用 reverse 参数控制排序方向

通过设置 reverse=True 可以实现降序排序:

numbers = [3, 1, 4, 1, 5, 9]desc_sorted = sorted(numbers, reverse=True)print(desc_sorted)  # 输出: [9, 5, 4, 3, 1, 1]

使用 key 参数自定义排序规则

这是 sorted() 最强大的功能之一!你可以通过 key 参数指定一个函数,告诉 Python 如何“看”每个元素来进行比较。

# 按字符串长度排序words = ['python', 'is', 'awesome']sorted_by_len = sorted(words, key=len)print(sorted_by_len)  # 输出: ['is', 'python', 'awesome']# 对包含元组的列表按第二个元素排序students = [('Alice', 85), ('Bob', 90), ('Charlie', 78)]sorted_by_score = sorted(students, key=lambda x: x[1])print(sorted_by_score)  # 输出: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]

常见应用场景

掌握 Python列表排序 技巧后,你可以在以下场景大显身手:

  • 对学生成绩进行排名
  • 按日期对日志文件排序
  • 对字典按键或值排序(需配合 .items()
  • 处理多维数据时按特定列排序

sorted() 与 list.sort() 的区别

特性 sorted() list.sort()
是否修改原列表 否(返回新列表) 是(原地排序)
适用对象 任何可迭代对象 仅限列表

总结

通过本教程,你已经掌握了 sorted函数用法 的核心要点。无论是简单的数字排序,还是复杂的自定义规则排序,sorted() 都能轻松应对。记住它的三大优势:不修改原数据、支持任意可迭代对象、可通过 key 灵活定制排序逻辑。

现在就去你的项目中试试吧!如果你觉得这篇关于 Python sorted函数 的教程对你有帮助,别忘了收藏和分享哦~