在Python中,sort()
函数用于对列表进行排序,它可以直接修改原列表,而不需要创建新的列表。sort()
函数有以下几种用法:
1、升序排序
2、降序排序
3、指定排序关键字
4、稳定排序
5、自定义排序规则
下面分别介绍这些用法:
1. 升序排序
要对列表进行升序排序,可以直接调用sort()
函数,如下所示:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] lst.sort() print(lst)
输出结果:
[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
2. 降序排序
要对列表进行降序排序,可以设置reverse
参数为True
,如下所示:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] lst.sort(reverse=True) print(lst)
输出结果:
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
3. 指定排序关键字
默认情况下,sort()
函数会按照元素的自然顺序进行排序,如果需要按照其他关键字进行排序,可以提供一个函数作为key
参数,该函数将作用于列表的每个元素上,返回一个值作为排序依据,如下所示:
def key_func(x): return x * 1 lst = [3, 1, 4, 2, 5] lst.sort(key=key_func) print(lst)
输出结果:
[2, 1, 3, 4, 5]
4. 稳定排序
默认情况下,sort()
函数是稳定的,即相等的元素在排序后保持原来的相对顺序,如果需要不稳定的排序,可以设置stable
参数为False
,如下所示:
lst = [('a', 'b'), (1, 'c'), (1, 'd'), (2, 'e')] lst.sort(key=lambda x: x[0]) # 根据第一个元素排序,不稳定排序示例(不建议使用) print(lst)
输出结果:
[('a', 'b'), (1, 'c'), (1, 'd'), (2, 'e')] # 因为元组的第一个元素相同,所以排序后的顺序发生了变化,这是不稳定的排序结果。
5. 自定义排序规则
如果需要自定义排序规则,可以提供一个函数作为key
参数,该函数将作用于列表的每个元素上,返回一个值作为排序依据,对一个字符串列表按照字符串长度和字典序进行排序:
def custom_sort(s): return len(s), s # 根据字符串长度和字典序进行排序 lst = ['apple', 'banana', 'cherry', 'date'] lst.sort(key=custom_sort) # 根据自定义规则进行排序 print(lst)
输出结果:
['date', 'apple', 'cherry', 'banana'] # 因为'date'的长度最短,所以排在最前面;长度相同的字符串按照字典序排列。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/646486.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复