首页 后端开发 Python教程 列表排序:Python的sort、sorted和numpy.argsort方法详解

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

Jun 10, 2023 am 09:22 AM
sorted sort argsort。

在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。例如:

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函数的返回值可以是列表、元组、字符串等类型,根据输入类型决定返回结果的类型。

三、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的sort、sorted和numpy.argsort方法详解的详细内容。更多信息请关注PHP中文网其他相关文章!

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

uniapp中如何实现拖拽排序和拖拽操作 uniapp中如何实现拖拽排序和拖拽操作 Oct 19, 2023 am 09:39 AM

Uniapp是一款跨平台的开发框架,其强大的跨端能力使得开发者可以快速方便地开发出各种应用。在Uniapp中实现拖拽排序和拖拽操作也是非常简单的,并且可以支持多种组件和元素的拖拽操作。本文将介绍如何使用Uniapp实现拖拽排序和拖拽操作,并提供具体的代码示例。拖拽排序功能在很多应用中都非常常见,例如可以用于实现列表的拖拽排序,图标的拖拽排序等。下面我们以列表

探究C++sort函数的底层原理与算法选择 探究C++sort函数的底层原理与算法选择 Apr 02, 2024 pm 05:36 PM

C++sort函数底层采用归并排序,其复杂度为O(nlogn),并提供不同的排序算法选择,包括快速排序、堆排序和稳定排序。

使用C#中的Array.Sort函数对数组进行排序 使用C#中的Array.Sort函数对数组进行排序 Nov 18, 2023 am 10:37 AM

标题:C#中使用Array.Sort函数对数组进行排序的示例正文:在C#中,数组是一种常用的数据结构,经常需要对数组进行排序操作。C#提供了Array类,其中有Sort方法可以方便地对数组进行排序。本文将演示如何使用C#中的Array.Sort函数对数组进行排序,并提供具体的代码示例。首先,我们需要了解一下Array.Sort函数的基本用法。Array.So

为什么在Python中list.sort()不会返回已排序的列表? 为什么在Python中list.sort()不会返回已排序的列表? Sep 18, 2023 am 09:29 AM

示例在这个例子中,我们先看看list.sort()的用法,然后再继续。在这里,我们创建了一个列表并使用sort()方法按升序排序-#CreatingaListmyList=["Jacob","Harry","Mark","Anthony"]#DisplayingtheListprint("List=",myList)#SorttheListsinAscendingOrdermyList.sort(

如何使用C#中的List.Sort函数对列表进行排序 如何使用C#中的List.Sort函数对列表进行排序 Nov 17, 2023 am 10:58 AM

如何使用C#中的List.Sort函数对列表进行排序在C#编程语言中,我们经常需要对列表进行排序操作。而List类的Sort函数正是为此设计的一个强大工具。本文将介绍如何使用C#中的List.Sort函数对列表进行排序,并提供具体的代码示例,帮助读者更好地理解和应用该函数。List.Sort函数是List类的一个成员函数,用于对列表中的元素进行排序。该函数接

java Sorted怎么使用 java Sorted怎么使用 Apr 19, 2023 am 11:40 AM

概念1、Sorted是中间操作,返回排列顺序的Stream。如果不输入定制的Comparator,这些要素将按自然顺序排列。使用注意2、在执行Sorted操作之后,stringCollection中元素的顺序没有改变。Sorted只对流中的元素进行排序,而不会改变原始集合中元素的顺序。实例stringCollection.stream().sorted().filter((s)->s.startsWith("a")).forEach(System.out::printl

使用PHP函数 'sort' 对数组按升序进行排序 使用PHP函数 'sort' 对数组按升序进行排序 Jul 25, 2023 am 09:28 AM

使用PHP函数"sort"对数组按升序进行排序在PHP中,可以很方便地使用内置函数来对数组进行排序。其中,sort函数是最常用的函数之一,可以对数组按照升序进行排序。本文将介绍如何使用sort函数,并给出相应的代码示例。sort函数的语法如下:sort(array&$array,int$sort_flags=SORT_REGULAR):boo

列表排序:Python的sort、sorted和numpy.argsort方法详解 列表排序:Python的sort、sorted和numpy.argsort方法详解 Jun 10, 2023 am 09:22 AM

在Python编程中,经常需要对列表或数组进行排序操作。Python提供了多种排序方法,包括sort、sorted和numpy.argsort等。本文将详细介绍这些排序方法的使用方法和注意事项。一、sort方法sort方法是Python列表中内置的方法,可以对列表进行原地排序(即有返回值但不产生新的排序对象),不需要额外的导入库。sort方法的参数有两个:k

See all articles