说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
Python 的列表是一种可变的序列,它除了支持 Python 序列类型 支持的方法外,还额外拥有 sort() 方法用于对重新元素排序。由于 sort() 排序会对序列进行操作,因此不可变序列如元组、字符串等是不支持的,可以使用 Python 内置函数 sorted() 进行操作返回一个新的排序后的对象。
此方法会对列表进行原地排序,只使用 < 来进行各项间比较。 异常不会被屏蔽 —— 如果有任何比较操作失败,整个排序操作将失败(而列表可能会处于被部分修改的状态)。
语法如下:
list.sort(self, /, *, key=None, reverse=False)
它支持两个必须以关键字形式的两个参数:
对列表自身进行修改(进行原地排序),修改为排序后的结果(即保持两个相等元素的顺序),不返回任何值。
此操作只使用 < 来进行各项间比较,异常不会被屏蔽,如果有任何比较操作失败,整个排序操作将失败(而列表可能会处于被部分修改的状态)。
对大尺寸的序列原地修改(见 原地操作)时能保证最小的空间占用。 为提醒用户此操作是通过间接影响进行的,它并不会返回排序后的序列(请使用 sorted() 显示地请求一个新的已排序列表实例)。
sort() 方法确保是稳定的。 如果一个排序确保不会改变比较结果相等的元素的相对顺序就称其为稳定的,这有利于进行多重排序(例如先按部门、再接薪级排序)。
基本使用:
a = [3, 1, 4, 1, 5, 9]
a.sort()
a
# [1, 1, 3, 4, 5, 9]
a.sort(reverse=True)
a
# [9, 5, 4, 3, 1, 1]
键函数 key 的使用:
b = ['B10', 'C02', 'A05']
b.sort(reverse=True)
b
# ['C02', 'B10', 'A05']
b.sort(reverse=True, key=lambda x: int(x[1:]))
b
# ['B10', 'A05', 'C02']
以上将字符中包含的数字从大到小排列。
更新时间:June 23, 2022, 8:46 p.m. 标签:python 列表 list 排序 sort