HomeLập trìnhPythonDanh sách đảo...

Danh sách đảo ngược Python – Đảo ngược một mảng trong Python


Trong bài viết này, bạn sẽ học cách đảo ngược một danh sách trong Python.

Đầu tiên, tôi sẽ giới thiệu cho bạn các danh sách trong Python và bạn sẽ học cách viết chúng. Sau đó, bạn sẽ thấy ba cách khác nhau để đảo ngược các mục danh sách bên trong bất kỳ danh sách nào bạn tạo.

Đây là những gì chúng tôi sẽ đề cập:

  1. Danh sách trong Python là gì và cách tạo một danh sách
  2. Cách đảo ngược các mục trong danh sách bằng cách sử dụng .reverse() phương pháp
  3. Cách đảo ngược các mục trong danh sách bằng cách sử dụng reversed() chức năng
  4. Cách đảo ngược các mục trong danh sách bằng cách cắt

Danh sách trong Python là gì? Cách viết một danh sách trong ví dụ Python

Danh sách là một kiểu dữ liệu tích hợp sẵn trong Python và là một trong những cấu trúc dữ liệu mạnh mẽ nhất.

Bạn có thể coi chúng như các thùng chứa để lưu trữ nhiều bộ sưu tập mục (thường có liên quan) dưới cùng một tên biến.

Để tạo danh sách trong Python, bạn cần:

  • Đặt tên cho danh sách.
  • Sử dụng toán tử gán, =.
  • Bao gồm hoặc nhiều mục danh sách bên trong dấu ngoặc vuông,[] – và đảm bảo phân tách từng mục danh sách bằng dấu phẩy.

Các mục danh sách có thể đồng nhất, nghĩa là chúng thuộc cùng một loại.

Ví dụ: bạn có thể tạo danh sách chỉ các số hoặc danh sách chỉ các chuỗi (hoặc văn bản).

Đây là cách bạn sẽ tạo một danh sách tên:

names = ["Johny", "Lenny", "Jimmy", "Timmy"]

# print list contents to the console
print(names)

# check data type for names using the type() function
print(type(names))

# output
# ['Johny', 'Lenny', 'Jimmy', 'Timmy']
# <class 'list'>

Ví dụ trên đã tạo một danh sách tên có bốn giá trị: Johny, Lenny, JimmyTimmy.

Bạn cũng có thể chỉ tạo một danh sách các số nguyên (hoặc số nguyên):

my_numbers = [1, 2, 3, 4, 5]

# print list contents to the console
print(my_numbers)

# check the data type for my_numbers using the type() function
print(type(my_numbers))

# output
# [1, 2, 3, 4, 5]
# <class 'list'>

Các mục danh sách cũng có thể không đồng nhất, nghĩa là tất cả chúng có thể thuộc các loại dữ liệu khác nhau.

# a list containing strings, integers, and floats (or numbers with a decimal point)

my_information = ["John", "Doe", 34, "London", 1.76]

print(my_information)

# output
# ['John', 'Doe', 34, 'London', 1.76]

Đây là những gì phân biệt danh sách với mảng.

Đọc thêm  Python IDE – IDE và trình chỉnh sửa tốt nhất cho Python

Không giống như mảng chỉ lưu trữ các mục cùng loại, danh sách cho phép linh hoạt hơn.

Mảng yêu cầu các mục chỉ có cùng kiểu dữ liệu, trong khi danh sách thì không.

Danh sách có thể thay đổi, nghĩa là chúng có thể thay đổi và động – bạn có thể cập nhật, xóa và thêm các mục danh sách mới vào danh sách bất kỳ lúc nào trong suốt vòng đời của chương trình.

Cách đảo ngược các mục trong danh sách bằng cách sử dụng .reverse() Phương pháp

Các .reverse() phương thức trong Python là một phương thức tích hợp để đảo ngược danh sách tại chỗ.

Đảo ngược danh sách tại chỗ có nghĩa là phương thức sửa đổi và thay đổi danh sách ban đầu. Nó không tạo một danh sách mới là bản sao của danh sách gốc nhưng với các mục trong danh sách theo thứ tự ngược lại.

Phương pháp này hữu ích khi bạn không quan tâm đến việc duy trì thứ tự của danh sách gốc.

Cú pháp chung của .reverse() phương pháp trông giống như sau:

list_name.reverse()

Các .reverse() phương thức không chấp nhận bất kỳ đối số nào và không có giá trị trả về – nó chỉ cập nhật danh sách hiện có.

Đây là cách bạn sẽ sử dụng .reverse() phương pháp để đảo ngược một danh sách các số nguyên:

#original list
my_numbers = [1, 2, 3, 4, 5]

# reverse the order of items in my_numbers
my_numbers.reverse()

# print contents of my_numbers to the console
print(my_numbers)

# output
# [5, 4, 3, 2, 1]

Trong ví dụ trên, thứ tự của các mục danh sách trong danh sách ban đầu bị đảo ngược và danh sách ban đầu được sửa đổi và cập nhật.

Và đây là cách bạn sẽ sử dụng phương thức trên danh sách tên:

names = ["Johny", "Lenny", "Jimmy", "Timmy"]

# reverse the order of items in names
names.reverse()

# print contents of names to the console
print(names)

# output
# ['Timmy', 'Jimmy', 'Lenny', 'Johny']

Cách đảo ngược các mục trong danh sách bằng cách sử dụng reversed() Chức năng

Chức năng này hữu ích khi bạn muốn truy cập các phần tử danh sách riêng lẻ theo thứ tự ngược lại.

Cú pháp chung cho reversed() chức năng trông giống như thế này:

reversed(list_name)

Các reversed() hàm tích hợp sẵn trong Python trả về một trình vòng lặp đảo ngược – một đối tượng có thể lặp lại mà sau đó được sử dụng để truy xuất và duyệt qua tất cả các phần tử danh sách theo thứ tự ngược lại.

Đọc thêm  Cách cài đặt Python trên Windows

Trả về một đối tượng có thể lặp lại có nghĩa là hàm trả về các mục trong danh sách theo thứ tự ngược lại. Nó không đảo ngược danh sách tại chỗ. Điều này có nghĩa là nó không sửa đổi danh sách gốc, cũng như không tạo danh sách mới là bản sao của danh sách gốc nhưng với các mục trong danh sách theo thứ tự ngược lại.

my_numbers = [1, 2, 3, 4, 5]

my_numbers_reversed = reversed(my_numbers)

# print original list
print(my_numbers)

# check the data type of my_numbers_reversed using the type() function
print(type(my_numbers_reversed))

# output
# [1, 2, 3, 4, 5]
# <class 'list_reverseiterator'>

Bạn sử dụng reversed() chức năng với một for vòng lặp để lặp qua các mục danh sách theo thứ tự đảo ngược. (Nếu bạn cần xem lại for vòng lặp trong Python, hãy đọc qua bài viết này)

my_numbers = [1, 2, 3, 4, 5]

for number in reversed(my_numbers):
  print(number)
  
# output
# 5
# 4
# 3
# 2
# 1

Sau đó, nếu bạn in nội dung của danh sách gốc ra bàn điều khiển, bạn sẽ thấy thứ tự của các mục được giữ nguyên và danh sách gốc không bị sửa đổi:

my_numbers = [1, 2, 3, 4, 5]

for number in reversed(my_numbers):
  print(number)

print(my_numbers)

# output
# 5
# 4
# 3
# 2
# 1
# [1, 2, 3, 4, 5]

Điều này là do reversed() hàm lấy một danh sách làm đối số và trả về một trình vòng lặp theo thứ tự ngược lại.

Nó sẽ không thực hiện bất kỳ thay đổi nào đối với danh sách hiện có và sẽ không tạo danh sách mới.

Chức năng này không đảo ngược danh sách vĩnh viễn, chỉ tạm thời trong quá trình thực hiện for vòng lặp trên danh sách ban đầu.

Nhưng điều gì sẽ xảy ra nếu bạn muốn tạo một danh sách mới sẽ là bản sao của danh sách gốc nhưng với các mục theo thứ tự đảo ngược bằng cách sử dụng reversed() chức năng?

Bạn có thể chuyển kết quả của reversed() hoạt động như một đối số cho list() sẽ chuyển đổi iterator thành một danh sách và lưu trữ kết quả cuối cùng trong một biến:

my_numbers = [1, 2, 3, 4, 5]

my_numbers_reversed = list(reversed(my_numbers))

# original list
print(my_numbers)

# new list, which is a copy of the original one with list items in reverse order
print(my_numbers_reversed)

# output
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]

Cách đảo ngược các mục trong danh sách bằng cách cắt lát

Một cách khác để đảo ngược danh sách trong Python là sử dụng cắt lát.

Cắt lát là một trong những cách nhanh nhất để đảo ngược danh sách trong Python và cung cấp một cú pháp ngắn gọn. Điều đó nói rằng, nó là một tính năng từ trung cấp đến nâng cao và không thân thiện với người mới bắt đầu so với .reverse() phương pháp trực quan và tự mô tả hơn.

Đọc thêm  Bản đồ Python () – Chức năng liệt kê với các ví dụ

Chúng ta hãy xem qua tổng quan nhanh về cách thức hoạt động của việc cắt lát.

Cú pháp chung trông giống như sau:

list_name[start:stop:step]

Hãy chia nhỏ nó ra:

start là chỉ số bắt đầu của lát cắt, bao gồm.

Lập chỉ mục trong Python và Khoa học Máy tính bắt đầu từ .

Giá trị mặc định của startvà nó lấy mục đầu tiên từ đầu danh sách.

Nếu bạn muốn lấy mục đầu tiên từ cuối danh sách, giá trị sẽ là -1.

my_numbers = [1,2,3,4,5,]

slicing_my_numbers = my_numbers[-1:]

print(slicing_my_numbers)

# output
# [5]

stop là vị trí chỉ mục kết thúc và là nơi bạn muốn quá trình cắt dừng lại, không bao gồm – nó không bao gồm phần tử nằm ở chỉ mục bạn chỉ định.

Ví dụ: nếu bạn muốn cắt danh sách từ đầu cho đến mục có chỉ mục 3đây là những gì bạn sẽ làm:

# the item at index 3 is the integer 4
my_numbers = [1,2,3,4,5,]

slicing_my_numbers = my_numbers[:3]

# the integer 4 is not included in the result
print(slicing_my_numbers)

# output
# [1, 2, 3]

step là giá trị gia tăng, với giá trị mặc định là 1.

Bây giờ, khi sử dụng phép cắt lát để đảo ngược danh sách, bạn sẽ cần sử dụng toán tử cắt lát đảo ngược [::-1] cú pháp. Điều này đặt bước để -1 và lấy tất cả các mục trong danh sách theo thứ tự ngược lại.

# original list
my_numbers = [1,2,3,4,5]

# reversing original list
my_numbers_reversed = my_numbers[::-1]

# print original list
print(my_numbers)

# print new list with the items from the original list in reverse order
print(my_numbers_reversed)

# output
# [1, 2, 3, 4, 5]
# [5, 4, 3, 2, 1]

Toán tử cắt không sửa đổi danh sách ban đầu. Thay vào đó, nó trả về một danh sách mới, là bản sao của các mục từ danh sách gốc theo thứ tự ngược lại.

Phần kết luận

Và bạn có nó rồi đấy! Bây giờ bạn đã biết cách đảo ngược bất kỳ danh sách nào trong Python.

Tôi hy vọng bạn tìm thấy hướng dẫn này hữu ích.

Để tìm hiểu thêm về ngôn ngữ lập trình Python, hãy xem chứng chỉ Python của freeCodeCamp.

Bạn sẽ bắt đầu từ những điều cơ bản và học theo cách tương tác và thân thiện với người mới bắt đầu. Cuối cùng, bạn cũng sẽ xây dựng năm dự án để đưa vào thực tế và giúp củng cố những gì bạn đã học được.

Cảm ơn bạn đã đọc và mã hóa hạnh phúc!



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status