Python - 反转数组
反转数组是将数组元素按相反顺序重新排列的操作。在 Python 中,有多种方法和方式来反转数组,包括 reverse() 和 reversed() 方法。
在 Python 中,array 不是内置数据类型之一。不过,Python 的标准库有一个 array 模块,可以帮助我们创建字符串、整数或浮点数类型的同构集合。
在 Python 中反转数组的方法
要反转数组,可以使用以下方法 −
- 使用切片操作
- 使用 reverse() 方法
- 使用 reversed() 方法
- 使用 for 循环
使用切片操作
切片操作是在指定索引范围内提取数组一部分的过程。在 Python 中,如果我们使用形式为 [::-1] 的切片操作,它将显示原始数组的反转副本。
在这个过程中,解释器从数组末尾开始,向后步进 1,直到到达数组开头。因此,我们得到原始数组的反转副本。
示例
下面的示例演示了如何在 Python 中使用切片操作反转数组。
import array as arr
# 创建数组
numericArray = arr.array('i', [88, 99, 77, 55, 66])
print("Original array:", numericArray)
revArray = numericArray[::-1]
print("Reversed array:",revArray)
运行代码时,将产生以下输出 −
Original array: array('i', [88, 99, 77, 55, 66])
Reversed array: array('i', [66, 55, 77, 99, 88])
使用 reverse() 方法反转数组
我们也可以使用 list 类的 reverse() 方法来反转数组中的数字序列。这里,list 是 Python 中的内置类型。
由于 reverse() 是 list 类的成员方法,我们不能直接用它来反转通过 Python array 模块创建的数组。我们必须先使用 array 类的 tolist() 方法将数组内容转换为 list,然后调用 reverse() 方法,最后将 list 转换回数组,这样就得到反转顺序的数组。
示例
这里,我们将看到在 Python 中使用 reverse() 方法反转数组的用法。
import array as arr
# 创建数组
numericArray = arr.array('i', [10,5,15,4,6,20,9])
print("Array before reversing:", numericArray)
# 将数组转换为 list
newArray = numericArray.tolist()
# 反转 list
newArray.reverse()
# 从反转的 list 创建新数组
revArray = arr.array('i', newArray)
print ("Array after reversing:",revArray)
它将产生以下 输出 −
Array before reversing: array('i', [10, 5, 15, 4, 6, 20, 9])
Array after reversing: array('i', [9, 20, 6, 4, 15, 5, 10])
使用 reversed() 方法反转数组
reversed() 方法是反转数组元素的另一种方式。它接受一个数组作为参数值,并返回一个迭代器对象,该对象以反转顺序显示数组元素。
示例
在这个示例中,我们使用 reversed() 方法在 Python 中反转数组。
import array as arr
# 创建数组
numericArray = arr.array('i', [12, 10, 14, 16, 20, 18])
print("Array before reversing:", numericArray)
# 反转数组
newArray = list(reversed(numericArray))
# 从反转的 list 创建新数组
revArray = arr.array('i', newArray)
print ("Array after reversing:",revArray)
执行上述代码,将显示以下输出 −
Array before reversing: array('i', [12, 10, 14, 16, 20, 18])
Array after reversing: array('i', [18, 20, 16, 14, 10, 12])
使用 for 循环
要使用 for 循环反转数组,我们首先按逆序遍历原始数组的元素,然后将每个元素追加到一个新数组中。
示例
以下示例展示了如何在 Python 中使用 for 循环反转数组。
import array as arr
a = arr.array('i', [10,5,15,4,6,20,9])
b = arr.array('i')
for i in range(len(a)-1, -1, -1):
b.append(a[i])
print(a)
print(b)
它将产生以下 输出 −
array('i', [10, 5, 15, 4, 6, 20, 9])
array('i', [9, 20, 6, 4, 15, 5, 10])