为了账号安全,请及时绑定邮箱和手机立即绑定

Python 的内置函数 sorted

标签:
Python API

Python 的内置函数 sorted() 是一个功能强大的排序工具,用于对可迭代对象进行排序操作。该函数会返回一个新的已排序列表,而不会修改原始输入对象。

基本语法:

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

参数说明:

  1. iterable:必需参数,表示要排序的可迭代对象(如列表、元组、字符串等)
  2. key:可选参数,指定排序依据的函数(默认为None,即直接比较元素值)
  3. reverse:可选布尔参数,控制排序顺序(False为升序,True为降序)

典型用法示例:

# 对列表进行排序
numbers = [3, 1, 4, 1, 5, 9, 2]
print(sorted(numbers))  # 输出:[1, 1, 2, 3, 4, 5, 9]

# 对字符串排序(按ASCII码值)
letters = "python"
print(sorted(letters))  # 输出:['h', 'n', 'o', 'p', 't', 'y']

# 使用key参数进行复杂排序
words = ["apple", "banana", "cherry", "date"]
print(sorted(words, key=len))  # 按单词长度排序

高级应用场景:

  1. 自定义排序规则:通过key参数可以实现复杂的排序逻辑
students = [
    {"name": "Alice", "grade": 90},
    {"name": "Bob", "grade": 85},
    {"name": "Charlie", "grade": 95}
]
# 按成绩降序排序
print(sorted(students, key=lambda x: x["grade"], reverse=True))
  1. 多级排序:可以组合多个条件进行排序
data = [(1, 'b'), (2, 'a'), (1, 'a')]
# 先按元组第一个元素升序,再按第二个元素升序
print(sorted(data, key=lambda x: (x[0], x[1])))

list.sort()方法的区别:

  1. sorted()适用于所有可迭代对象,而list.sort()是列表的专有方法
  2. sorted()返回新列表,原对象不变;list.sort()会原地修改列表
  3. sorted()在内存使用上效率略低,因为它需要创建新列表

性能特点:

  • 时间复杂度:O(n log n)
  • 稳定性:Python的排序是稳定的,即相等元素的相对顺序保持不变
  • 实际实现使用Timsort算法(混合了归并排序和插入排序)

注意事项:

  • 排序不同类型元素时会引发TypeError
  • 对字典使用时默认按键排序
  • 可以配合functools.cmp_to_key使用旧式的比较函数
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消