Phương pháp nào được sử dụng để đảo ngược danh sách trong python?


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 slice

Mặ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 được

Cá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 Python

Bâ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

  1. Chỉ số tích cực. Danh sách Python sẽ bắt đầu ở vị trí
    # 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]
    3 và tiếp tục đến chỉ mục có độ dài trừ 1
  2. 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í
    # 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, di chuyển đến giá trị âm độ dài của danh sách

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

Cách lập chỉ mục danh sách Python hoạt động

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ới

Hã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]

# 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 : ", aList
4

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ép

Trong 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òng

Hã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 : ", aList
43 để đảo ngược danh sách Python

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.reverse[];
print "List : ", aList
8

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 : ", aList
45. 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 : ", aList
46 để 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 : ", aList
46, 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 : ", aList
46, 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 : ", aList
49 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 : ", aList
80

Ví dụ:

#!/usr/bin/python

aList = [123, 'xyz', 'zara', 'abc', 'xyz'];
aList.reverse[];
print "List : ", aList
81 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ên

Di 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ì

  1. 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
  2. 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]
0

Hãy chia nhỏ đoạn mã trên đang làm gì

  1. 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
  2. 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 : ", aList
84 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]
3

Lợ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 : ", aList
85 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 : ", aList
86 để 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 : ", aList
87. 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 : ", aList
88

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 : ", aList
43 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

Phương pháp nào được sử dụng để đảo ngược danh sách?

Sử dụng reversed[] và cắt để tạo các bản sao đảo ngược danh sách của bạn. Sử dụng phép lặp, hiểu và đệ quy để tạo danh sách đảo ngược. Lặp lại danh sách của bạn theo thứ tự ngược lại.

Phương pháp đảo ngược trong Python là gì?

Phương thức đảo ngược Python[] trả về một trình lặp truy cập chuỗi đã cho theo thứ tự ngược lại .

Phương thức list Reverse[] có trả về một giá trị không?

Giá trị trả về

Chủ Đề