/ / Cách sử dụng Python để đảo ngược danh sách hoặc mảng

Cách sử dụng Python để đảo ngược danh sách hoặc mảng

Đảo ngược một danh sách hoặc một mảng là một nhiệm vụ lập trình phổ biến. Có nhiều trường hợp bạn có thể cần trình bày dữ liệu theo thứ tự ngược lại, chẳng hạn như khi sắp xếp danh sách.

Làm cách nào bạn có thể đảo ngược một danh sách hoặc một mảng với Python? Bạn sẽ tìm hiểu các cách tiếp cận khác nhau trong bài viết này.

Tạo bản sao với vòng lặp for

Mặc dù vòng lặp for của Python dài dòng hơn, nhưng nó có thể hữu ích trong một số trường hợp. Ví dụ, nó cung cấp tính linh hoạt hơn khi thực hiện logic phức tạp tại một số điểm trong hoạt động ngược lại.

Khi sử dụng thụt lề vòng lặp, cách tiếp cận phổ biến là lặp qua danh sách ban đầu theo thứ tự ngược lại. Bắt đầu với phần tử cuối cùng, mỗi lần lặp sau đó sẽ thêm phần tử trước đó vào một danh sách mới.

Đưa ra một danh sách các số nguyên từ một đến chín làm ví dụ, đây là cách đảo ngược một mảng bằng cách sử dụng thụt lề vòng:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Create an empty list to hold the reversed array:
reversed_list = []

# Substract one from the length of the original array to start from the last index:
reducer = len(languages)-1

# Reverse the list inside a for loop:
for i in languages:
reversed_list.append(languages[reducer]) # Append the result to the empty list
reducer -=1 # Decrease the index by one at each iteration using the reducer

print(reversed_list)

Output:

[9, 8, 7, 6, 5, 4, 3, 2, 1]

LÀM VIDEO TRONG NGÀY

Đảo ngược một danh sách hoặc một mảng bằng cách sử dụng tính năng hiểu danh sách

Việc hiểu danh sách tạo ra mã ngắn hơn. Và không cần một biến tạm thời vì khả năng hiểu danh sách hoạt động trên một danh sách tại chỗ.

Để thực hiện thao tác trước đó, sử dụng cách hiểu danh sách:

reducer = len(languages)

# Decrement the index within a range function using for loop in a list comprehension
Reversed_list = [languages[reducer] for reducer in range(reducer -1,-1,-1)]
print(Reversed_list)

Output:
[9, 8, 7, 6, 5, 4, 3, 2, 1]

Sử dụng toán tử lát

Toán tử lát danh sách khá đơn giản, mặc dù nó có một số hạn chế. Ví dụ: bạn không thể tùy chỉnh đầu ra như khi sử dụng vòng.

Dưới đây là cách đảo ngược danh sách bằng cách sử dụng toán tử lát:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rev_list = languages[::-1]
print(rev_list)

Output:
[9, 8, 7, 6, 5, 4, 3, 2, 1]

Các [::-1] cú pháp là một phím tắt thông minh dẫn đến một danh sách bị đảo ngược. Nó thực sự có nghĩa là “sao chép mọi phần tử của danh sách, bắt đầu từ cuối và đếm ngược” – tức là “đảo ngược nó”!

Sử dụng phương pháp đảo ngược của một mảng

Đây là một phương thức khác hoạt động tại chỗ: nó sửa đổi mảng ban đầu. Đây có thể là một thiếu sót vì bạn không thể giữ danh sách trước đó cho các hoạt động khác.

Dưới đây là cách đảo ngược một mảng bằng phương pháp đảo ngược:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
languages.reverse()
print(languages)

Output:
[9, 8, 7, 6, 5, 4, 3, 2, 1]

Sử dụng chức năng đảo ngược

Hàm đã đảo ngược lặp lại trên một danh sách, mảng hoặc bất kỳ chuỗi nào khác và trả về bản sao đã đảo ngược của nó. Tuy nhiên, bạn cần phải khai báo đầu ra đảo ngược một cách rõ ràng dưới dạng danh sách.

Đây là cách nó hoạt động:

languages = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(reversed(languages)))

Output:
[9, 8, 7, 6, 5, 4, 3, 2, 1]

Sáng tạo với mảng

Mảng hoặc danh sách là những cách phổ biến để lưu trữ dữ liệu. Tùy thuộc vào mục tiêu của bạn, bạn có thể muốn trình bày dữ liệu cho khách hàng theo thứ tự ngược lại. Một cách để làm điều này là đảo ngược mảng hoặc danh sách trước khi hiển thị nó. Như bạn đã thấy, có một số cách để đảo ngược danh sách trong Python. Chọn những gì phù hợp nhất với bạn và phù hợp với logic của bạn cho một vấn đề cụ thể.

Bạn cũng có thể muốn xem cách đảo ngược một mảng trong các ngôn ngữ lập trình khác để hiểu logic nền tốt hơn.


Đảo ngược một mảng

Cách đảo ngược một mảng trong C ++, Python và JavaScript

Đọc tiếp


Thông tin về các Tác giả

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *