Python 简明教程
Python - Sort Arrays
Python’s array 模块定义了数组类。数组类的对象类似于 Java 或 C/C++ 中存在的数组。与内置 Python 序列不同,数组是 strings 、整数或浮点数对象的同构集合。
数组类没有任何函数/方法来对它的元素进行排序的排列。然而,我们可以运用下列方法之一来实现它 −
-
Using a sorting algorithm
-
使用 List 中的 sort() 方法
-
利用内置的 sorted() 函数
我们逐一详细讨论这些方法。
Sort Arrays Using a Sorting Algorithm
我们以经典 bubble sort algorithm 方式实现它以获取排序后的数组。要做到这一点,我们用两个 nested loops ,然后交换元素以按排序顺序重新排列。
Sort Arrays Using sort() Method of List
尽管阵列模块没有 sort() method ,但 Python 的内置 List 类有一个 sort 方法。我们将在下一个示例中使用它。
首先,声明一个数组,并利用 tolist() 方法从中获取一个列表对象。然后,使用 sort() 方法获取一个排序后的列表。最后,使用排序后的列表创建另一个数组,它会显示一个排序后的数组。
Example
以下代码展示了如何使用 sort() 方法获取一个排序后的数组。
import array as arr
# creating array
orgnlArray = arr.array('i', [10,5,15,4,6,20,9])
print("Original array:", orgnlArray)
# converting to list
sortedList = orgnlArray.tolist()
# sorting the list
sortedList.sort()
# creating array from sorted list
sortedArray = arr.array('i', sortedList)
print("Array after sorting:",sortedArray)
上述代码将显示以下输出 −
Original array: array('i', [10, 5, 15, 4, 6, 20, 9])
Array after sorting: array('i', [4, 5, 6, 9, 10, 15, 20])
Sort Arrays Using sorted() Method
第三种数组排序方法是使用 sorted() 函数,它是一个 built-in function 。
sorted() 函数的 syntax 如下 −
sorted(iterable, reverse=False)
该函数返回一个新列表,包含所有元素按升序排序的 iterable 对象。将逆序参数设置为 True,以获取按降序排序的元素。
sorted() 函数可以与任何 iterable 对象一起使用。Python 数组是一个 iterable 对象,因为它是一个索引集合。因此,一个数组可用作 sorted() 函数的参数。