Sự mô tả
Phương thức danh sách Python đảo ngược [] đảo ngược các đối tượng của danh sách tại chỗ
cú pháp
Sau đây là cú pháp của phương thức reverse[] -
list.reverse[]
Thông số
Giá trị trả về
Phương thức này không trả về bất kỳ giá trị nào nhưng đảo ngược đối tượng đã cho từ danh sách
Thí dụ
Ví dụ sau minh họa cách sử dụng phương thức reverse[]
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList
Khi chúng tôi chạy chương trình trên, nó tạo ra kết quả sau -
List : ['xyz', 'abc', 'zara', 'xyz', 123]
Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để đảo ngược danh sách. Đây là một nhiệm vụ phổ biến trong tầm tay [và một câu hỏi phỏng vấn Python phổ biến mà bạn sẽ gặp phải]. Biết cách tiếp cận nhiệm vụ này theo nhiều cách khác nhau có thể giúp bạn chọn đúng phương pháp trong các tình huống khác nhau
Python đi kèm với một số phương thức và hàm cho phép bạn đảo ngược danh sách, trực tiếp hoặc bằng cách lặp qua đối tượng danh sách. Bạn sẽ tìm hiểu cách đảo ngược danh sách Python bằng cách sử dụng hàm
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
9, phương thức # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0, lập chỉ mục danh sách, vòng lặp for, hiểu danh sách và phương thức sliceMặc dù học sáu phương pháp khác nhau để đảo ngược một danh sách trong Python có vẻ hơi thừa, nhưng một trong những điều tuyệt vời về Python là tính linh hoạt mà nó mang lại. Một số phương pháp sẽ phù hợp hơn với phong cách của bạn, trong khi những phương pháp khác có thể hiệu quả hơn hoặc dễ đọc hơn
Bắt đầu nào
Câu trả lời nhanh. Sử dụng
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 của Python# Using list.reverse[] to reverse a list in Python
values = [1, 2, 3, 4, 5]
values.reverse[]
print[values]
# Returns: [5, 4, 3, 2, 1]
Mục lục
- Bản tóm tắt. Cách đảo ngược danh sách trong Python
- Hiểu lập chỉ mục danh sách Python
- Đảo ngược danh sách Python bằng phương pháp đảo ngược
- Đảo ngược danh sách Python bằng chức năng đảo ngược
- Đảo ngược danh sách Python bằng lập chỉ mục danh sách
- Đảo ngược danh sách Python bằng vòng lặp For
- Đảo ngược danh sách Python bằng cách hiểu danh sách
- Đảo ngược danh sách Python bằng phương thức Slice
- Các câu hỏi thường gặp
- Sự kết luận
- Tài nguyên bổ sung
Bản tóm tắt. Cách đảo ngược danh sách trong Python
Trong hướng dẫn này, chúng tôi sẽ đề cập đến sáu cách khác nhau để đảo ngược danh sách trong Python. Tuy nhiên, hãy xem cách tốt nhất và nhanh nhất để đảo ngược danh sách trong Python là gì. Từ đó, bạn có thể đọc về các phương pháp khác nhau trong các phần bên dưới
Cách Pythonic nhất để đảo ngược danh sách là sử dụng phương thức danh sách
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0. Điều này là do nó có chủ ý và khiến người đọc không nghi ngờ gì về những gì bạn đang hy vọng đạt đượcCách nhanh nhất để đảo ngược danh sách trong Python là sử dụng vòng lặp for hoặc khả năng hiểu danh sách. Để kiểm tra điều này, chúng tôi đã kiểm tra từng phương pháp trong danh sách chứa 100.000.000 mục. Điều này cho phép chúng tôi thực sự căng thẳng kiểm tra từng phương pháp khác nhau
Chúng ta hãy xem kết quả của từng phương pháp là gì
Thời gian để đảo ngược danh sách 100.000.000 mục. phương pháp đảo ngược[]32. 6 mili giây ± 3. 35 ms mỗi hàm loopreversed[]680 ms ± 21. 6 ms mỗi vòng Lập chỉ mục đảo ngược386 ms ± 3. 14 ms mỗi vòng Đối với vòng lặp751 ns ± 1. 83 ns mỗi vòng Hiểu danh sách747 ns ± 1. 12 ns mỗi đối tượng loopSlicer382 ms ± 2. 35 ms mỗi vòng Thời gian thực hiện đảo ngược danh sách khác nhau trong PythonBây giờ chúng ta đã đề cập đến điều đó, hãy đi sâu vào cách sử dụng các phương thức khác nhau này để đảo ngược danh sách trong Python
Hiểu lập chỉ mục danh sách Python
Trước khi chúng tôi đi sâu vào cách đảo ngược danh sách Python, điều quan trọng là chúng tôi phải hiểu cách danh sách Python được lập chỉ mục. Vì danh sách Python được sắp xếp và lập chỉ mục, chúng tôi có thể truy cập và sửa đổi danh sách Python dựa trên chỉ mục của chúng
Chỉ mục danh sách Python hoạt động theo hai cách chính
- Chỉ số tích cực. Danh sách Python sẽ bắt đầu ở vị trí
3 và tiếp tục đến chỉ mục có độ dài trừ 1# Reverse a Python list with reverse[] original_list = [1,2,3,4,5,6,7,8,9] original_list.reverse[] print[original_list] # Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
- Chỉ số tiêu cực. Danh sách Python có thể được lập chỉ mục ngược lại, bắt đầu từ vị trí
4, di chuyển đến giá trị âm độ dài của danh sách# Reverse a Python list with reverse[] original_list = [1,2,3,4,5,6,7,8,9] original_list.reverse[] print[original_list] # Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Hình ảnh bên dưới minh họa cách các mục danh sách có thể được lập chỉ mục
Trong phần tiếp theo, bạn sẽ tìm hiểu cách sử dụng phương pháp danh sách
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 của Python để đảo ngược một danh sách trong PythonĐảo ngược danh sách Python bằng phương pháp đảo ngược
Danh sách Python có quyền truy cập vào phương thức,
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0, cho phép bạn đảo ngược danh sách tại chỗ. Điều này có nghĩa là danh sách được đảo ngược theo cách tiết kiệm bộ nhớ mà không cần tạo đối tượng mớiHãy xem cách chúng ta có thể đảo ngược danh sách Python của mình bằng phương pháp
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
Vì thao tác được xử lý tại chỗ nên nếu cần giữ lại danh sách gốc, trước tiên bạn cần tạo một bản sao của danh sách đó. Chúng tôi có thể tạo một bản sao của danh sách bằng cách sử dụng phương thức
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
8 trên danh sách gốc trước tiên. Hãy xem cách thức hoạt động của nó#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList4
Chúng ta có thể thấy rằng bằng cách áp dụng phương thức
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
8 cho danh sách ban đầu, sau đó chúng ta có thể xâu chuỗi phương thức # Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0 để đảo ngược danh sách đã sao chépTrong phần tiếp theo, bạn sẽ tìm hiểu cách đảo ngược danh sách bằng cách sử dụng lập chỉ mục danh sách
Đảo ngược danh sách Python bằng chức năng đảo ngược
Python có một hàm tích hợp,
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
9, lấy một đối tượng có thể lặp lại như danh sách và trả về phiên bản đảo ngược của nóPhương pháp
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
9 hoạt động tương tự như phương pháp lập chỉ mục danh sách được trình bày bên dưới. Nó đã được thêm vào Python để sao chép phương thức lập chỉ mục mà không quá dài dòngHãy xem cách chúng ta có thể sử dụng hàm
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList43 để đảo ngược danh sách Python
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList8
Hàm
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
9 thực sự trả về một đối tượng lặp thuộc loại #!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList45. Do đó, chúng ta cần truyền đối tượng vào hàm
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList46 để chuyển đổi nó thành danh sách
Chúng tôi có thể xác minh điều này bằng cách viết đoạn mã sau
List : ['xyz', 'abc', 'zara', 'xyz', 123]1
Bằng cách chuyển đối tượng vào hàm
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList46, tất cả các mục được kéo vào danh sách
Về cốt lõi, đối tượng iterator khá hiệu quả về bộ nhớ. Điều này là do nó hoạt động giống như một đối tượng trình tạo và đánh giá một cách lười biếng [chỉ khi một mục được truy cập]. Khi chúng tôi chuyển đổi nó thành một danh sách bằng hàm
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList46, chúng tôi sẽ mất hiệu quả này
Trong phần sau, bạn sẽ tìm hiểu cách sử dụng lập chỉ mục danh sách để đảo ngược danh sách Python
Đảo ngược danh sách Python bằng lập chỉ mục danh sách
Khi lập chỉ mục một danh sách, mọi người thường nghĩ đến việc truy cập tất cả các mục từ vị trí bắt đầu đến vị trí kết thúc. Tuy nhiên, bạn cũng có thể bao gồm một biến
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList49 cho phép bạn di chuyển giữa các chỉ số ở các khoảng thời gian khác nhau. Lập chỉ mục danh sách có dạng
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList80
Ví dụ:
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList81 sẽ trả về toàn bộ danh sách từ đầu đến cuối. Thay vào đó, nếu chúng tôi bước theo giá trị của
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
4, thì chúng tôi sẽ duyệt qua danh sách từ mục cuối cùng đến mục đầu tiênDi chuyển danh sách từ đầu đến cuối cũng giống như đảo ngược danh sách. Hãy xem cách chúng ta có thể sử dụng lập chỉ mục danh sách của Python để đảo ngược danh sách
List : ['xyz', 'abc', 'zara', 'xyz', 123]8
Trong đoạn mã trên, chúng tôi tạo một danh sách mới bằng cách bước qua danh sách ban đầu theo thứ tự ngược lại. Phương thức này không sửa đổi đối tượng tại chỗ và cần được gán cho một biến
Đảo ngược danh sách Python bằng vòng lặp For
Các vòng lặp Python for là những cách tuyệt vời để lặp lại một hành động trong một số lần xác định. Chúng ta có thể sử dụng reversed[] và lặp lại các mục của nó để tạo danh sách theo thứ tự đảo ngược
Hãy xem làm thế nào điều này có thể được thực hiện
List : ['xyz', 'abc', 'zara', 'xyz', 123]9
Hãy chia nhỏ khối mã ở trên đang làm gì
- Chúng tôi xác định hai danh sách, danh sách gốc và danh sách trống để lưu trữ các mục đã đảo ngược của chúng tôi
- Sau đó, chúng tôi lặp lại từng mục trong danh sách. Chúng tôi chỉ định lại danh sách đã đảo ngược thành một danh sách chứa từng mục cộng với danh sách đã đảo ngược
Trong phần tiếp theo, bạn sẽ học cách sử dụng khả năng hiểu danh sách Python để đảo ngược danh sách
Đảo ngược danh sách Python bằng cách hiểu danh sách
Tương tự như việc sử dụng vòng lặp for cho việc này, chúng ta cũng có thể sử dụng khả năng hiểu danh sách để đảo ngược danh sách Python. Tuy nhiên, thay vì chỉ chuyển đổi vòng lặp for thành cách hiểu danh sách, chúng tôi sẽ sử dụng một cách tiếp cận hơi khác để đạt được mục tiêu của mình
Chúng tôi sẽ lặp lại từng mục trong danh sách ban đầu của chúng tôi theo thứ tự phủ định. Hãy xem cái này trông như thế nào
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
0Hãy chia nhỏ đoạn mã trên đang làm gì
- Chúng tôi tạo một biến
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList
83 đại diện cho độ dài của danh sách trừ đi một - Sau đó, chúng tôi tạo khả năng hiểu danh sách truy cập từng mục chỉ mục trong danh sách của chúng tôi bằng cách sử dụng phạm vi từ vị trí bắt đầu đến 0 theo thứ tự ngược lại
Phương pháp này hoạt động, nhưng nó không phải là phương pháp dễ đọc nhất. Đây có thể là một cách hay để học cách thực hiện điều này cho một cuộc phỏng vấn, nhưng ngoài điều này ra, nó không phải là phương pháp được khuyên dùng nhất
Đảo ngược danh sách Python bằng phương thức Slice
Python cũng cung cấp một hàm
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList84 cho phép chúng ta lập chỉ mục một đối tượng giống như cách hoạt động của phương thức lập chỉ mục danh sách ở trên. Hàm tạo đối tượng slice cho phép chúng ta dễ dàng sử dụng lại một slice trên nhiều đối tượng. Do đó, chúng tôi có thể áp dụng cùng một chỉ mục trên các danh sách khác nhau
Hãy xem cách chúng ta có thể sử dụng hàm trong Python
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
3Lợi ích của phương pháp này là chúng ta có thể chỉ định một lát tùy chỉnh có thể dễ dàng sử dụng lại mà không cần sửa đổi nhiều mục. Điều này cho phép bạn dễ dàng áp dụng cùng một lát cắt cho nhiều mục
Ngoài ra, chức năng
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList85 cho phép bạn đặt tên dễ hiểu cho lát cắt. Trong ví dụ trên, chúng tôi đặt tên cho slicer là
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList86 để làm rõ đối tượng slice đang làm gì
Các câu hỏi thường gặp
Cách tốt nhất để đảo ngược danh sách trong Python là gì?
Cách tốt nhất và đậm chất Pythonic nhất để đảo ngược danh sách trong Python là sử dụng phương thức
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList87. Phương pháp này đảo ngược danh sách tại chỗ và là cách rõ ràng nhất để truyền đạt cho người đọc những gì bạn đang làm
Làm cách nào để bạn đảo ngược một danh sách trong Python bằng cách cắt?
Cách tốt nhất để đảo ngược danh sách bằng cách cắt lát trong Python là sử dụng lập chỉ mục phủ định. Điều này cho phép bạn bước qua danh sách bằng cách sử dụng -1, bằng cách sử dụng mã
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList88
Cách nhanh nhất để đảo ngược danh sách trong Python là gì?
Cách nhanh nhất để đảo ngược danh sách trong Python là sử dụng vòng lặp for [hoặc hiểu danh sách]. Phương pháp này nhanh hơn hàng trăm lần so với các phương pháp khác [ngay cả khi được kiểm tra đối với danh sách có 100.000.000 mục]
Sự kết luận
Trong hướng dẫn này, bạn đã học cách đảo ngược danh sách trong Python. Bạn đã học cách lập chỉ mục danh sách hoạt động và cách sử dụng điều này để đảo ngược danh sách. Sau đó, bạn đã học cách sử dụng các phương pháp
#!/usr/bin/python aList = [123, 'xyz', 'zara', 'abc', 'xyz']; aList.reverse[]; print "List : ", aList43 và
# Reverse a Python list with reverse[]
original_list = [1,2,3,4,5,6,7,8,9]
original_list.reverse[]
print[original_list]
# Returns: [9, 8, 7, 6, 5, 4, 3, 2, 1]
9 để đảo ngược danh sách. Sau đó, bạn đã học cách sử dụng vòng lặp for và hiểu danh sách, cũng như hàm slice