如何区分Python中sort、sorted和numpy.argsort的列表排序方法?

更新于
2026-10-11 18:54:34
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1193个文字,预计阅读时间需要5分钟。

如何区分Python中sort、sorted和numpy.argsort的列表排序方法?

在Python编程中,经常需要对列表或数组进行排序操作。Python提供了多种排序方法,包括`sort()`、`sorted()`和`numpy.argsort()`等。

一、`sort()`方法`sort()`方法是列表对象的一个方法,它可以直接在原列表上进行排序,且默认为升序排列。

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

注意:`sort()`方法会改变原列表的顺序。

二、`sorted()`函数`sorted()`是Python内置的一个函数,它返回一个新的列表,其中包含排序后的元素,而原列表保持不变。

python示例my_list=[3, 1, 4, 1, 5, 9, 2, 6]sorted_list=sorted(my_list)print(sorted_list) # 输出:[1, 1, 2, 3, 4, 5, 6, 9]print(my_list) # 输出:[3, 1, 4, 1, 5, 9, 2, 6],原列表保持不变

三、`numpy.argsort()`函数`numpy.argsort()`是NumPy库中的一个函数,它返回输入数组排序后的索引数组。

pythonimport numpy as np

示例arr=np.array([3, 1, 4, 1, 5, 9, 2, 6])sorted_indices=np.argsort(arr)print(sorted_indices) # 输出:[6, 1, 3, 0, 2, 5, 4, 7]

注意:`numpy.argsort()`返回的是排序后的索引,而不是排序后的数组。

总结:

1.`sort()`方法在原列表上进行排序,而`sorted()`函数返回一个新的排序后的列表。

2.`numpy.argsort()`返回排序后的索引数组,而`sort()`和`sorted()`返回排序后的列表或数组。

3.在使用排序方法时,注意指定排序方式(升序或降序)和比较函数(如`reverse=True`表示降序排序)。

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

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

如何区分Python中sort、sorted和numpy.argsort的列表排序方法?

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等参数来控制排序行为,应根据需要选用不同的排序方法。

标签:sortsorted和

本文共计1193个文字,预计阅读时间需要5分钟。

如何区分Python中sort、sorted和numpy.argsort的列表排序方法?

在Python编程中,经常需要对列表或数组进行排序操作。Python提供了多种排序方法,包括`sort()`、`sorted()`和`numpy.argsort()`等。

一、`sort()`方法`sort()`方法是列表对象的一个方法,它可以直接在原列表上进行排序,且默认为升序排列。

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

注意:`sort()`方法会改变原列表的顺序。

二、`sorted()`函数`sorted()`是Python内置的一个函数,它返回一个新的列表,其中包含排序后的元素,而原列表保持不变。

python示例my_list=[3, 1, 4, 1, 5, 9, 2, 6]sorted_list=sorted(my_list)print(sorted_list) # 输出:[1, 1, 2, 3, 4, 5, 6, 9]print(my_list) # 输出:[3, 1, 4, 1, 5, 9, 2, 6],原列表保持不变

三、`numpy.argsort()`函数`numpy.argsort()`是NumPy库中的一个函数,它返回输入数组排序后的索引数组。

pythonimport numpy as np

示例arr=np.array([3, 1, 4, 1, 5, 9, 2, 6])sorted_indices=np.argsort(arr)print(sorted_indices) # 输出:[6, 1, 3, 0, 2, 5, 4, 7]

注意:`numpy.argsort()`返回的是排序后的索引,而不是排序后的数组。

总结:

1.`sort()`方法在原列表上进行排序,而`sorted()`函数返回一个新的排序后的列表。

2.`numpy.argsort()`返回排序后的索引数组,而`sort()`和`sorted()`返回排序后的列表或数组。

3.在使用排序方法时,注意指定排序方式(升序或降序)和比较函数(如`reverse=True`表示降序排序)。

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

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

如何区分Python中sort、sorted和numpy.argsort的列表排序方法?

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等参数来控制排序行为,应根据需要选用不同的排序方法。

标签:sortsorted和