Python 的 array 模块定义了 array 类。数组类的对象类似于 Java 或 C/C++ 中的数组。与内置的 Python 序列不同,array 是字符串、整数或 float 对象的同质集合。
array 类没有任何函数/方法来给出其元素的排序排列。但是,我们可以通过以下方法之一来实现它 -
- 使用排序算法
- 使用 List 中的 sort() 方法
- 使用内置的 sorted() 函数
让我们详细讨论这些方法中的每一种。
使用排序算法对数组进行排序
我们实现经典的冒泡排序算法来获得排序后的数组。为此,我们使用两个嵌套循环并交换元素以按排序顺序重新排列。
例使用 Python 代码编辑器运行以下代码 -
import array as arr
a = arr.array('i', [10,5,15,4,6,20,9])
for i in range(0, len(a)):
for j in range(i+1, len(a)):
if(a[i] > a[j]):
temp = a[i];
a[i] = a[j];
a[j] = temp;
print (a)
它将产生以下输出 -
array('i', [4, 5, 6, 9, 10, 15, 20])
使用 list 的 sort() 方法对数组进行排序
即使 array 模块没有 sort() 方法,Python 的内置 List 类也确实有一个 sort 方法。我们将在下一个例子中使用它。
首先,使用 tolist() 方法声明一个数组并从中获取一个列表对象。然后,使用 sort() 方法获取排序列表。最后,使用排序列表创建另一个数组,该数组将显示一个排序数组。
例以下代码演示如何使用 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])
Array after sorting: array('i', [4, 5, 6, 9, 10, 15, 20])
使用 sorted() 方法对数组进行排序
对数组进行排序的第三种方法是使用 sorted() 函数,这是一个内置函数。
sorted() 函数的语法如下 -
sorted(iterable, reverse=False)
该函数返回一个新列表,其中包含 iterable 中的所有项目,按升序排列。将 reverse 参数设置为 True 可获取项的降序。
sorted() 函数可以与任何可迭代对象一起使用。Python 数组是一个可迭代对象,因为它是一个索引集合。因此,数组可以用作 sorted() 函数的参数。
例在这个例子中,我们将看到 sorted() 方法在对数组进行排序时使用。
import array as arr
a = arr.array('i', [4, 5, 6, 9, 10, 15, 20])
sorted(a)
print(a)
它将产生以下输出 -
array('i', [4, 5, 6, 9, 10, 15, 20])