首页 > 编程语言 >一次搞懂Python排序函数:sorted、sort、sort_values

一次搞懂Python排序函数:sorted、sort、sort_values

来源:互联网 2026-07-23 08:00:12

Python排序函数包括内置的sorted()(返回新列表,不修改原序列)和列表的sort()(原地修改),以及Pandas的sort_values()(按值排序)和sort_index()(按索引排序),各自适用于不同数据类型和场景,如sorted可对任何可迭代对象,sort仅列表,且均支持自定义排序键功能。

一、Python序列排序

1. sorted()函数

首先介绍Python内置的sorted()函数,这是一个排序函数,它不会修改原序列,而是返回一个全新的排序后的列表。你只需要传入一个序列——列表、字典、元组、字符串都行,默认按升序排列。如果传入的是字典,它返回的是键的列表。

一次搞懂Python排序函数:sorted、sort、sort_values

长期稳定更新的攒劲资源: >>>点此立即查看<<<

list_1 = [2,5,3,9,6,4,1,3,0,2]
sorted(list_1)
#输出:
[0, 1, 2, 2, 3, 3, 4, 5, 6, 9]

#降序排序
list_1 = [2,5,3,9,6,4,1,3,0,2]
sorted(list_1,reverse=True)
#输出
[9, 6, 5, 4, 3, 3, 2, 2, 1, 0]

dict_1 = {9:'banana',4:'pear',7:'apple'}
sorted(dict_1)
#输出
[4, 7, 9]

2. sort()方法

再来看list的sort()方法,它是Python列表专属的内建方法,直接在原列表上操作,排序后原列表改变,不会生成新列表,也没有返回值。字典、元组、字符串不能使用这个方法。

list_2 = [3,6,9,1,4]
list_2.sort()
print(list_2)
[1, 3, 4, 6, 9]

#降序排序
list_2 = [3,6,9,1,4]
list_2.sort(reverse = True)
print(list_2)
[9, 6, 4, 3, 1]

3. sort()方法和sorted()函数的区别

这两个容易混淆,核心区别在于两点:

  • 是否改变原序列sort()会原地修改,sorted()则返回新序列,原序列不变。
  • 调用方式不同sort()序列.sort()sorted()sorted(序列, reverse=True/False)

二、表中排序(Python—Pandas)

1. 按值排序

按照表中某一个字段的值进行排序

在Pandas中,sort_values()是主要方法,类似SQL里的order by,可以指定按某列的数据排序,也可以按某行的数据排序。语法直观:

DataFrame.sort_values(by='字段名',axis=0,ascending=True, inplace=False, na_position=‘last')

默认升序,ascending=True;想降序就改成False

import pandas as pd
df=pd.DataFrame({'name':['张三','李四','王五'],
                 'class':[1,3,2],
                 'score':[98,94,100]})
print(df)
	name	class	score
0	张三		  1	 	 98
1	李四		  3	 	 94
2	王五		  2	 	 100

print(df.sort_values(by = 'score'))
#降序排序将参数ascending = False 即可。
   name	  class	  score
1	李四	   3	   94
0	张三	   1	   98
2	王五	   2	   100

2. 按索引排序

按行索引(index)或列索引(columns)的值来排序。例如:按行排序就是根据每行的索引值大小排序,按列排序就是根据每列的列名大小排序。

语法:

sort_index(axis=0, level=None, ascending=True, inplace=False, kind=‘quicksort', na_position=‘last',sort_remaining=True)
  • axis:0表示按行索引,1表示按列索引。
  • level:如果有多级索引,可以指定按哪一级排序。
  • ascending:是否升序,默认True。
  • inplace:是否原地修改,默认False。
  • kind:排序算法,默认快速排序。

总结

以上就是Python里几种常用排序方式的用法,从内置的sortedsort到Pandas里的sort_valuessort_index,理清它们各自的特点,用起来就不会出错。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备14008430号-1 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。