Python 数组排序

Python 数组排序

Python的array模块定义了array类。array类的对象类似于Java或C/C++中的数组。与内置的Python序列不同,array是一个同类型的集合,可以是字符串、整数或浮点数对象。

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])

使用列表的sort()方法

尽管数组没有sort()方法,但Python内置的列表类有sort方法。我们将在下个示例中使用它。

首先,声明一个数组并使用tolist()方法从中获取一个列表对象 –

a = arr.array('i', [10,5,15,4,6,20,9])
b=a.tolist()

我们可以很容易地获得按照以下方式排序的列表:

b.sort()

我们所需要做的就是将这个列表转换回数组对象−

a.fromlist(b)

这是完整的代码。

from array import array as arr
a = arr.array('i', [10,5,15,4,6,20,9])
b=a.tolist()
b.sort()
a = arr.array('i')
a.fromlist(b)
print (a)

它将生成以下 输出

array('i', [4, 5, 6, 9, 10, 15, 20])

使用内建的sorted()函数进行排序

对数组进行排序的第三种技术是使用内建的sorted()函数。

sorted()函数的 语法 如下所示:

sorted(iterable, reverse=False)

该函数返回一个包含了可迭代对象中所有项目按升序排列的新列表。将reverse参数设置为True可以获得按降序排列的项目。

sorted()函数可以与任何可迭代对象一起使用。Python数组是可迭代对象,因为它是一个索引集合。因此,数组可以作为sorted()函数的参数。

from array 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])

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程