Python - Reverse Arrays

Đảo ngược một mảng là thao tác sắp xếp lại các phần tử của mảng theo thứ tự ngược lại. Có nhiều phương pháp và cách tiếp cận để đảo ngược một mảng trong Python, bao gồm các phương pháp reverse() và reversed().

Trong Python, array không phải là một trong những data types tích hợp sẵn. Tuy nhiên, thư viện chuẩn của Python có mô-đun array giúp chúng ta tạo ra một tập hợp đồng nhất của string , kiểu số nguyên hoặc số thực.

Reverse Array Operation Python

Ways to Reverse an Array in Python

Để đảo ngược một mảng, hãy sử dụng các phương pháp sau −

  • Using slicing operation
  • Using reverse() method
  • Using reversed() method
  • Using for loop

Using slicing operation

Phép cắt (Slicing) là quá trình trích xuất một phần của mảng trong các chỉ số đã chỉ định. Trong Python, nếu chúng ta sử dụng phép cắt dưới dạng [::-1] , thì nó sẽ hiển thị một mảng mới bằng cách đảo ngược mảng gốc.

Trong quá trình này, trình thông dịch bắt đầu từ cuối và lùi lại 1 bước cho đến khi nó đạt đến đầu của mảng. Kết quả là, chúng ta có một bản sao ngược của mảng gốc.

Example

Ví dụ dưới đây minh họa cách sử dụng thao tác cắt (slicing) để đảo ngược một mảng trong Python.

import array as arr

# creating array
numericArray = arr.array('i', [88, 99, 77, 55, 66])

print("Original array:", numericArray)
revArray = numericArray[::-1]
print("Reversed array:",revArray)

Khi bạn chạy đoạn mã, nó sẽ tạo ra đầu ra sau −

Original array: array('i', [88, 99, 77, 55, 66])
Reversed array: array('i', [66, 55, 77, 99, 88])

Reverse an Array Using reverse() Method

Chúng ta cũng có thể đảo ngược chuỗi số trong một mảng bằng cách sử dụng reverse() method của lớp list. Ở đây, list là một kiểu dữ liệu tích hợp sẵn trong Python.

Vì phương thức reverse() là một phương thức của lớp danh sách (list class), nên chúng ta không thể sử dụng trực tiếp nó để đảo ngược một mảng được tạo ra thông qua mô-đun array của Python. Chúng ta phải chuyển đầu tiên nội dung của mảng sang danh sách bằng phương thức tolist() của lớp array, sau đó gọi phương thức reverse() và cuối cùng, khi chúng ta chuyển đổi danh sách trở lại thành mảng, chúng ta sẽ có mảng với thứ tự bị đảo ngược.

Example

Ở đây, chúng ta sẽ xem cách sử dụng phương thức reverse() để đảo ngược một mảng trong Python.

import array as arr

# creating an array
numericArray = arr.array('i', [10,5,15,4,6,20,9])
print("Array before reversing:", numericArray)

# converting the array into list
newArray = numericArray.tolist()

# reversing the list
newArray.reverse()

# creating a new array from reversed list
revArray = arr.array('i', newArray)
print ("Array after reversing:",revArray)

Nó sẽ tạo ra output

Array before reversing: array('i', [10, 5, 15, 4, 6, 20, 9])
Array after reversing: array('i', [9, 20, 6, 4, 15, 5, 10])

Reverse an Array Using reversed() Method

Phương thức reversed() là một cách khác để đảo ngược các phần tử của một mảng. Nó chấp nhận một mảng làm giá trị tham số và trả về một đối tượng iterator hiển thị các phần tử của mảng theo thứ tự ngược lại.

Example

Trong ví dụ này, chúng ta đang sử dụng phương thức reversed() để đảo ngược một mảng trong Python.

import array as arr

# creating an array
numericArray = arr.array('i', [12, 10, 14, 16, 20, 18])
print("Array before reversing:", numericArray)

# reversing the array
newArray = list(reversed(numericArray))

# creating a new array from reversed list
revArray = arr.array('i', newArray)
print ("Array after reversing:",revArray)

Khi thực thi đoạn mã trên, nó sẽ hiển thị đầu ra sau:

Array before reversing: array('i', [12, 10, 14, 16, 20, 18])
Array after reversing: array('i', [18, 20, 16, 14, 10, 12])

Using for Loop

Để đảo ngược một mảng bằng cách sử dụng for loop , trước tiên chúng ta duyệt các phần tử của mảng gốc theo thứ tự ngược lại và sau đó thêm mỗi phần tử vào một mảng mới.

Example

Ví dụ dưới đây cho thấy cách đảo ngược một mảng trong Python bằng cách sử dụng vòng lặp 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)

Nó sẽ tạo ra output

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