0

0

列表排序:Python的sort、sorted和numpy.argsort方法详解

王林

王林

发布时间:2023-06-10 09:22:16

|

2998人浏览过

|

来源于php中文网

原创

在python编程中,经常需要对列表或数组进行排序操作。python提供了多种排序方法,包括sort、sorted和numpy.argsort等。本文将详细介绍这些排序方法的使用方法和注意事项。

一、sort方法
sort方法是Python列表中内置的方法,可以对列表进行原地排序(即有返回值但不产生新的排序对象),不需要额外的导入库。sort方法的参数有两个:key和reverse。key表示排序时使用的键,reverse表示是否进行倒序排序。例如:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

my_list.sort(reverse=True)
print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
my_list.sort(key=lambda x: len(x))
print(my_list) # 输出 ["apple", "cherry", "orange", "banana"]

以上例子中,第一个例子对整数列表进行排序,第二个例子进行倒序排序,第三个例子使用了lambda表达式对字符串列表按长度排序。

需要注意的是,sort方法是原地排序,即会改变原有列表的顺序,返回值是None,所以不能直接对排序后的列表执行操作,需要在排序前先创建一个副本或使用其他方法存储排序后的结果。

二、sorted函数
sorted函数是Python内置的函数,可以对列表、元组、字符串等排序,并且返回一个新的排序后的对象,不改变原始输入对象。sorted函数的参数与sort方法相同,包括key和reverse。例如:

立即学习Python免费学习笔记(深入)”;

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list)
print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

new_list = sorted(my_list, reverse=True)
print(new_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

my_list = ["apple", "banana", "cherry", "orange"]
new_list = sorted(my_list, key=lambda x: len(x))
print(new_list) # 输出 ["apple", "cherry", "orange", "banana"]

sorted函数的返回值可以是列表、元组、字符串等类型,根据输入类型决定返回结果的类型。

Kite
Kite

代码检测和自动完成工具

下载

三、numpy.argsort方法
numpy.argsort方法是numpy中的方法,主要用来对numpy数组进行排序。argsort方法返回排序后的下标。numpy.argsort方法的参数也是key和reverse。例如:

import numpy as np

my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
sort_index = np.argsort(my_array)
print(sort_index) # 输出 [1 3 6 0 9 2 4 8 7 5 10]

sort_index = np.argsort(-my_array)
print(sort_index) # 输出 [5 7 4 2 0 3 6 8 9 1 10]

my_array = np.array(["apple", "banana", "cherry", "orange"])
sort_index = np.argsort([len(x) for x in my_array])
print(sort_index) # 输出 [0 2 3 1]

以上例子中,第一个例子对numpy数组进行升序排序,并返回排序后的下标。第二个例子进行降序排序,需要对数组取相反数。第三个例子对字符串数组按长度排序。

需要注意的是,numpy.argsort方法返回的是下标列表,需要通过下标来获取排序结果。

总结:
本文主要介绍了Python中的sort、sorted和numpy.argsort方法,这些方法可用于对Python中的列表和数组进行排序。其中sort方法和sorted函数可以对Python内置的对象进行排序,numpy.argsort方法则是numpy中的方法,主要用于对numpy数组进行排序。这些方法都可以使用key和reverse等参数来控制排序行为,应根据需要选用不同的排序方法。

相关文章

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
深入剖析redis教程
深入剖析redis教程

共55课时 | 8.1万人学习

Redis中文开发手册
Redis中文开发手册

共0课时 | 0人学习

麦子学院深入浅出 redis 视频教程
麦子学院深入浅出 redis 视频教程

共20课时 | 4.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号