Xin chào thế giới đến với olleh dlrow trong python

Khi bạn thường xuyên sử dụng các chuỗi Python trong mã của mình, bạn có thể phải làm việc với chúng theo thứ tự ngược lại. Python bao gồm một số công cụ và kỹ thuật tiện dụng có thể giúp bạn trong những tình huống này. Với chúng, bạn sẽ có thể tạo các bản sao đảo ngược của các chuỗi hiện có một cách nhanh chóng và hiệu quả

Biết về các công cụ và kỹ thuật đảo ngược chuỗi này trong Python sẽ giúp bạn cải thiện trình độ của mình với tư cách là nhà phát triển Python

Trong hướng dẫn này, bạn sẽ học cách

  • Nhanh chóng xây dựng các chuỗi bị đảo ngược thông qua việc cắt
  • Tạo các bản sao đảo ngược của các chuỗi hiện có bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0 và
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    1
  • Sử dụng phép lặp và đệ quy để đảo ngược các chuỗi hiện có theo cách thủ công
  • Thực hiện lặp lại ngược lại trên chuỗi của bạn
  • Sắp xếp các chuỗi của bạn theo thứ tự ngược lại bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    2

Để tận dụng tối đa hướng dẫn này, bạn nên biết những kiến ​​thức cơ bản về chuỗi, vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
4 cũng như đệ quy

Tải xuống miễn phí. Nhận một chương mẫu từ Python Basics. Giới thiệu thực tế về Python 3 để xem cách bạn có thể đi từ trình độ mới bắt đầu đến trình độ trung cấp trong Python với một chương trình giảng dạy hoàn chỉnh, cập nhật về Python 3. 8

Đảo ngược chuỗi với các công cụ Python cốt lõi

Làm việc với các chuỗi Python theo thứ tự ngược lại có thể là một yêu cầu trong một số tình huống cụ thể. Ví dụ: giả sử bạn có _______ 05 mạnh và bạn muốn đảo ngược nó một cách nhanh chóng để có _______ 06. Bạn có thể sử dụng công cụ Python nào để trợ giúp?

Các chuỗi là bất biến trong Python, do đó, không thể đảo ngược một chuỗi đã cho tại chỗ. Bạn sẽ cần tạo các bản sao đảo ngược của các chuỗi mục tiêu của mình để đáp ứng yêu cầu

Python cung cấp hai cách đơn giản để đảo ngược chuỗi. Vì các chuỗi là các chuỗi nên chúng có thể lập chỉ mục, có thể cắt và có thể lặp lại. Các tính năng này cho phép bạn sử dụng tính năng cắt để tạo trực tiếp bản sao của một chuỗi đã cho theo thứ tự ngược lại. Tùy chọn thứ hai là sử dụng hàm tích hợp sẵn

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 để tạo một trình lặp mang lại các ký tự của chuỗi đầu vào theo thứ tự ngược lại

Loại bỏ các quảng cáo

Đảo ngược chuỗi thông qua cắt lát

Cắt lát là một kỹ thuật hữu ích cho phép bạn trích xuất các mục từ một chuỗi nhất định bằng cách sử dụng các kết hợp chỉ số nguyên khác nhau được gọi là hiệu số. Khi nói đến việc cắt chuỗi, các độ lệch này xác định chỉ mục của ký tự đầu tiên trong quá trình cắt, chỉ mục của ký tự dừng quá trình cắt và một giá trị xác định số lượng ký tự bạn muốn chuyển qua trong mỗi lần lặp

Để cắt một chuỗi, bạn có thể sử dụng cú pháp sau

________số 8

Hiệu số của bạn là

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10. Biểu thức này trích xuất tất cả các ký tự từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
12 bởi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10. Bạn sẽ nhìn sâu hơn vào ý nghĩa của tất cả những điều này chỉ trong giây lát

Tất cả các phần bù là tùy chọn và chúng có các giá trị mặc định sau

OffsetGiá trị mặc định

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
15
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
17
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
19

Ở đây,

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 đại diện cho chỉ mục của ký tự đầu tiên trong lát cắt, trong khi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 giữ chỉ mục dừng hoạt động cắt lát. Phần bù thứ ba,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10, cho phép bạn quyết định số lượng ký tự mà phần cắt sẽ nhảy qua trên mỗi lần lặp

Ghi chú. Thao tác cắt lát kết thúc khi nó đạt đến chỉ số bằng hoặc lớn hơn

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9. Điều này có nghĩa là nó không bao giờ bao gồm mục tại chỉ mục đó, nếu có, trong phần cuối cùng

Độ lệch

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10 cho phép bạn tinh chỉnh cách bạn trích xuất các ký tự mong muốn từ một chuỗi trong khi bỏ qua các ký tự khác

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
6

Ở đây, trước tiên bạn cắt

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
75 mà không cung cấp các giá trị offset rõ ràng để có được bản sao đầy đủ của chuỗi gốc. Để đạt được điều này, bạn cũng có thể sử dụng một phép cắt bỏ dấu hai chấm thứ hai [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
76]. Với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10 bằng với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
78, phép cắt sẽ lấy mọi ký tự khác từ chuỗi mục tiêu. Bạn có thể chơi xung quanh với các độ lệch khác nhau để hiểu rõ hơn về cách thức hoạt động của việc cắt lát

Tại sao việc cắt và phần bù thứ ba này lại liên quan đến việc đảo ngược chuỗi trong Python? . Nếu bạn cung cấp giá trị âm cho

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10, thì quá trình cắt sẽ chạy ngược lại, nghĩa là từ phải sang trái

Ví dụ: nếu bạn đặt

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
10 bằng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
42, thì bạn có thể tạo một lát cắt truy xuất tất cả các ký tự theo thứ tự ngược lại

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'

Phép cắt này trả về tất cả các ký tự từ đầu bên phải của chuỗi, trong đó chỉ số bằng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
43, trở lại đầu bên trái của chuỗi, trong đó chỉ số là
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
15. Khi bạn sử dụng thủ thuật này, bạn sẽ nhận được một bản sao của chuỗi gốc theo thứ tự ngược lại mà không ảnh hưởng đến nội dung gốc của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
75

Một kỹ thuật khác để tạo một bản sao đảo ngược của một chuỗi hiện có là sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
46. Chữ ký của chức năng tích hợp này là như sau

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1

Hàm này nhận ba đối số, với cùng ý nghĩa của các phần bù trong toán tử cắt và trả về một đối tượng lát đại diện cho tập hợp các chỉ số là kết quả của việc gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
47

Bạn có thể sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
46 để mô phỏng việc cắt lát
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
49 và đảo ngược chuỗi của bạn một cách nhanh chóng. Hãy tiếp tục và chạy lệnh gọi sau tới
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
46 bên trong dấu ngoặc vuông

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
7

Truyền

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
61 cho hai đối số đầu tiên của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
46 cho hàm biết rằng bạn muốn dựa vào hành vi mặc định bên trong của nó, giống như một phép cắt tiêu chuẩn không có giá trị cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9. Nói cách khác, chuyển
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
61 đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 có nghĩa là bạn muốn một lát cắt từ đầu bên trái sang đầu bên phải của dãy bên dưới

Loại bỏ các quảng cáo

Đảo ngược chuỗi với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Cách thứ hai và được cho là cách tiếp cận Pythonic nhất để đảo ngược chuỗi là sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 cùng với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
61. Nếu bạn chuyển một chuỗi tới
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0, bạn sẽ nhận được một trình vòng lặp mang lại các ký tự theo thứ tự ngược lại

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
4

Khi bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
63 với đối số là
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
64, bạn sẽ nhận được từng ký tự từ đầu bên phải của chuỗi gốc

Một điểm quan trọng cần lưu ý về

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 là trình vòng lặp kết quả mang lại các ký tự trực tiếp từ chuỗi gốc. Nói cách khác, nó không tạo ra một chuỗi đảo ngược mới mà đọc ngược các ký tự từ chuỗi hiện có. Hành vi này khá hiệu quả về mức tiêu thụ bộ nhớ và có thể là một chiến thắng cơ bản trong một số ngữ cảnh và tình huống, chẳng hạn như phép lặp

Bạn có thể sử dụng iterator mà bạn nhận được từ việc gọi trực tiếp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 làm đối số cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
6

Trong biểu thức một dòng này, bạn chuyển trực tiếp kết quả của việc gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 làm đối số cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1. Kết quả là bạn nhận được một bản sao đảo ngược của chuỗi đầu vào ban đầu. Sự kết hợp giữa
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 này là một lựa chọn tuyệt vời để đảo ngược chuỗi

Tạo chuỗi đảo ngược bằng tay

Cho đến giờ, bạn đã tìm hiểu về các công cụ và kỹ thuật cốt lõi của Python để đảo ngược chuỗi một cách nhanh chóng. Hầu hết thời gian, chúng sẽ là con đường của bạn. Tuy nhiên, bạn có thể cần đảo ngược một chuỗi bằng tay tại một số thời điểm trong cuộc phiêu lưu viết mã của mình

Trong phần này, bạn sẽ học cách đảo ngược chuỗi bằng cách sử dụng các vòng lặp và đệ quy rõ ràng. Kỹ thuật cuối cùng sử dụng phương pháp lập trình hàm với sự trợ giúp của hàm

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 của Python

Đảo ngược chuỗi trong một vòng lặp

Kỹ thuật đầu tiên bạn sẽ sử dụng để đảo ngược một chuỗi liên quan đến vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 và toán tử nối [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
94]. Với hai chuỗi là toán hạng, toán tử này trả về một chuỗi mới là kết quả của việc nối các chuỗi ban đầu. Toàn bộ hoạt động được gọi là nối

Ghi chú. Sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 là phương pháp được đề xuất để nối các chuỗi trong Python. Nó sạch sẽ, hiệu quả và Pythonic

Đây là một hàm lấy một chuỗi và đảo ngược nó trong một vòng lặp bằng phép nối

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
6

Trong mỗi lần lặp, vòng lặp lấy một ký tự tiếp theo,

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
96, từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97 và nối nó với nội dung hiện tại của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
98. Lưu ý rằng ban đầu
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
98 chứa một chuỗi rỗng [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
80]. Chuỗi trung gian mới sau đó được gán lại cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
98. Ở cuối vòng lặp,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
98 giữ một chuỗi mới dưới dạng bản sao đảo ngược của chuỗi gốc

Ghi chú. Vì chuỗi Python là kiểu dữ liệu bất biến, bạn nên nhớ rằng các ví dụ trong phần này sử dụng một kỹ thuật lãng phí. Họ chỉ dựa vào việc tạo các chuỗi trung gian liên tiếp để loại bỏ chúng trong lần lặp lại tiếp theo

Nếu bạn thích sử dụng vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
4, thì đây là những gì bạn có thể làm để tạo một bản sao đảo ngược của một chuỗi đã cho

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9

Ở đây, trước tiên bạn tính toán

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
84 của ký tự cuối cùng trong chuỗi đầu vào bằng cách sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
85. Vòng lặp lặp lại từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
84 xuống và bao gồm cả
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
15. Trong mỗi lần lặp lại, bạn sử dụng toán tử gán tăng cường [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
88] để tạo một chuỗi trung gian nối nội dung của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
98 với ký tự tương ứng từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97. Một lần nữa, kết quả cuối cùng là một chuỗi mới xuất phát từ việc đảo ngược chuỗi đầu vào

Loại bỏ các quảng cáo

Đảo ngược chuỗi với đệ quy

Bạn cũng có thể sử dụng đệ quy để đảo ngược chuỗi. Đệ quy là khi một hàm gọi chính nó trong phần thân của chính nó. Để ngăn chặn đệ quy vô hạn, bạn nên cung cấp trường hợp cơ sở tạo ra kết quả mà không cần gọi lại hàm. Thành phần thứ hai là trường hợp đệ quy, bắt đầu vòng lặp đệ quy và thực hiện hầu hết các tính toán

Đây là cách bạn có thể định nghĩa một hàm đệ quy trả về một bản sao đảo ngược của một chuỗi đã cho

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8

Trong ví dụ này, trước tiên bạn kiểm tra trường hợp cơ sở. Nếu chuỗi đầu vào có đúng một ký tự, bạn trả lại chuỗi cho người gọi

Câu lệnh cuối cùng, là trường hợp đệ quy, gọi chính

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
601. Cuộc gọi sử dụng lát cắt
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
602 của chuỗi đầu vào làm đối số. Lát này chứa tất cả các ký tự trong
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97, ngoại trừ ký tự đầu tiên. Bước tiếp theo là thêm kết quả của lời gọi đệ quy cùng với chuỗi ký tự đơn
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
604, chứa ký tự đầu tiên của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97

Một vấn đề quan trọng cần lưu ý trong ví dụ trên là nếu bạn chuyển một chuỗi dài làm đối số cho

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
601, thì bạn sẽ nhận được một
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
607

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
60

Vượt qua giới hạn đệ quy mặc định của Python là một vấn đề quan trọng mà bạn nên xem xét trong mã của mình. Tuy nhiên, nếu bạn thực sự cần sử dụng đệ quy, thì bạn vẫn có tùy chọn đặt giới hạn đệ quy theo cách thủ công

Bạn có thể kiểm tra giới hạn đệ quy của trình thông dịch Python hiện tại của mình bằng cách gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
608 từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
609. Theo mặc định, giá trị này thường là
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
610. Bạn có thể điều chỉnh giới hạn này bằng cách sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
611 từ cùng một mô-đun,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
609. Với các chức năng này, bạn có thể định cấu hình môi trường Python để giải pháp đệ quy của bạn có thể hoạt động. Đi trước và cung cấp cho nó một thử

Sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 để đảo ngược chuỗi

Nếu bạn thích sử dụng phương pháp lập trình chức năng, bạn có thể sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
615 để đảo ngược chuỗi. Python's
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 lấy chức năng gấp hoặc rút gọn và có thể lặp lại làm đối số. Sau đó, nó áp dụng hàm được cung cấp cho các mục trong đầu vào có thể lặp lại và trả về một giá trị tích lũy duy nhất

Đây là cách bạn có thể tận dụng lợi thế của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 để đảo ngược chuỗi

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
61

Trong ví dụ này, hàm

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
618 nhận hai chuỗi và nối chúng theo thứ tự ngược lại. Cuộc gọi đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
92 áp dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
618 đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97 trong một vòng lặp và tạo một bản sao đảo ngược của chuỗi gốc

Lặp qua chuỗi ngược

Đôi khi bạn có thể muốn lặp qua các chuỗi hiện có theo thứ tự ngược lại, một kỹ thuật thường được gọi là lặp ngược. Tùy thuộc vào nhu cầu cụ thể của bạn, bạn có thể thực hiện phép lặp ngược trên chuỗi bằng cách sử dụng một trong các tùy chọn sau

  • Chức năng tích hợp sẵn
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0
  • Toán tử cắt lát,
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    49

Phép lặp ngược được cho là trường hợp sử dụng phổ biến nhất của các công cụ này, vì vậy trong một số phần sau, bạn sẽ tìm hiểu về cách sử dụng chúng trong ngữ cảnh lặp

Chức năng tích hợp
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Cách tiếp cận Pythonic và dễ đọc nhất để lặp qua một chuỗi theo thứ tự ngược lại là sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0. Bạn đã biết về chức năng này một lúc trước khi bạn sử dụng nó cùng với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 để tạo các chuỗi đảo ngược

Tuy nhiên, mục đích chính và trường hợp sử dụng của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 là hỗ trợ phép lặp ngược trên Python iterables. Với một chuỗi làm đối số,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 trả về một trình lặp tạo ra các ký tự từ chuỗi đầu vào theo thứ tự ngược lại

Đây là cách bạn có thể lặp qua một chuỗi theo thứ tự ngược lại với

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62

Vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 trong ví dụ này rất dễ đọc. Tên của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 thể hiện rõ ràng ý định của nó và truyền đạt rằng chức năng không tạo ra bất kỳ tác dụng phụ nào đối với dữ liệu đầu vào. Vì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 trả về một trình vòng lặp nên vòng lặp cũng hiệu quả đối với việc sử dụng bộ nhớ

Loại bỏ các quảng cáo

Toán tử cắt lát,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
49

Cách tiếp cận thứ hai để thực hiện phép lặp ngược trên chuỗi là sử dụng cú pháp cắt mở rộng mà bạn đã thấy trước đó trong ví dụ về

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
634. Mặc dù cách tiếp cận này không ủng hộ hiệu quả bộ nhớ và khả năng đọc, nhưng nó vẫn cung cấp một cách nhanh chóng để lặp lại một bản sao đảo ngược của một chuỗi hiện có

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
63

Trong ví dụ này, bạn áp dụng toán tử cắt trên

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
64 để tạo một bản sao đảo ngược của nó. Sau đó, bạn sử dụng chuỗi đảo ngược mới đó để nạp vòng lặp. Trong trường hợp này, bạn đang lặp lại một chuỗi đảo ngược mới, vì vậy giải pháp này ít hiệu quả về bộ nhớ hơn so với sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Tạo chuỗi có thể đảo ngược tùy chỉnh

Nếu bạn đã từng thử đảo ngược danh sách Python, thì bạn biết rằng danh sách có một phương thức tiện dụng có tên là

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
637 để đảo ngược danh sách cơ bản tại chỗ. Vì các chuỗi là bất biến trong Python nên chúng không cung cấp một phương thức tương tự

Tuy nhiên, bạn vẫn có thể tạo một lớp con chuỗi tùy chỉnh bằng phương thức

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
637 bắt chước
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
639. Đây là cách bạn có thể làm điều đó

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
64

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
640 kế thừa từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641, là một lớp từ mô-đun
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
642.
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641 là một trình bao bọc xung quanh loại dữ liệu tích hợp sẵn
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
644. Nó được thiết kế đặc biệt để tạo các lớp con của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
644.
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641 rất hữu ích khi bạn cần tạo các lớp giống như chuỗi tùy chỉnh với các chức năng bổ sung

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641 cung cấp chức năng giống như một chuỗi thông thường. Nó cũng thêm một thuộc tính công khai có tên là
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
648 giữ và cấp cho bạn quyền truy cập vào đối tượng chuỗi được bao bọc

Bên trong

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
640, bạn tạo
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
637. Phương pháp này đảo ngược chuỗi được bọc trong
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
648 và gán lại kết quả cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
648. Từ bên ngoài, gọi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
637 hoạt động giống như đảo ngược chuỗi tại chỗ. Tuy nhiên, những gì nó thực sự làm là tạo một chuỗi mới chứa dữ liệu ban đầu theo thứ tự ngược lại

Đây là cách hoạt động của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
640 trong thực tế

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
65

Khi bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
637 trên
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97, phương thức này hoạt động như thể bạn đang thực hiện một thay đổi tại chỗ của chuỗi bên dưới. Tuy nhiên, thực ra bạn đang tạo một chuỗi mới và gán nó trở lại chuỗi được bọc. Lưu ý rằng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97 hiện giữ chuỗi gốc theo thứ tự ngược lại

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641 cung cấp chức năng tương tự như lớp cha của nó là
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
644, nên bạn có thể sử dụng ngay lập tức
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 để thực hiện phép lặp ngược

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
66

Ở đây, bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
97 làm đối số để cung cấp vòng lặp
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3. Cuộc gọi này hoạt động như mong đợi và trả về trình vòng lặp tương ứng vì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
641 kế thừa hành vi được yêu cầu từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
644. Lưu ý rằng việc gọi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 không ảnh hưởng đến chuỗi gốc

Sắp xếp chuỗi Python theo thứ tự đảo ngược

Chủ đề cuối cùng bạn sẽ tìm hiểu là cách sắp xếp các ký tự của chuỗi theo thứ tự đảo ngược. Điều này có thể hữu ích khi bạn đang làm việc với các chuỗi không theo thứ tự cụ thể và bạn cần sắp xếp chúng theo thứ tự bảng chữ cái đảo ngược

Để tiếp cận vấn đề này, bạn có thể sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2. Hàm tích hợp này trả về một danh sách chứa tất cả các mục của đầu vào có thể lặp lại theo thứ tự. Bên cạnh đầu vào có thể lặp lại,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 cũng chấp nhận đối số từ khóa
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
669. Bạn có thể đặt đối số này thành
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
670 nếu bạn muốn đầu vào có thể lặp lại được sắp xếp theo thứ tự giảm dần

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67

Khi bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 với một chuỗi làm đối số và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
669 được đặt thành
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
670, bạn sẽ nhận được một danh sách chứa các ký tự của chuỗi đầu vào theo thứ tự đảo ngược hoặc giảm dần. Vì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 trả về một đối tượng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
675, nên bạn cần một cách để biến danh sách đó trở lại thành một chuỗi. Một lần nữa, bạn có thể sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 giống như bạn đã làm trong các phần trước

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68

Trong đoạn mã này, bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 trên một chuỗi rỗng, đóng vai trò là dấu phân cách. Đối số của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 là kết quả của việc gọi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
680 làm đối số và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
669 được đặt thành
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
670

Bạn cũng có thể tận dụng lợi thế của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 để lặp qua một chuỗi theo thứ tự được sắp xếp và đảo ngược

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
69

Đối số

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
669 của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 cho phép bạn sắp xếp các lần lặp, bao gồm cả chuỗi, theo thứ tự giảm dần. Vì vậy, nếu bạn cần các ký tự của chuỗi được sắp xếp theo thứ tự bảng chữ cái đảo ngược, thì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 là dành cho bạn

Loại bỏ các quảng cáo

Sự kết luận

Đảo ngược và làm việc với các chuỗi theo thứ tự đảo ngược có thể là một nhiệm vụ phổ biến trong lập trình. Python cung cấp một bộ công cụ và kỹ thuật có thể giúp bạn thực hiện đảo ngược chuỗi một cách nhanh chóng và hiệu quả. Trong hướng dẫn này, bạn đã tìm hiểu về các công cụ và kỹ thuật đó cũng như cách tận dụng chúng trong các thử thách xử lý chuỗi của bạn

Trong hướng dẫn này, bạn đã học cách

  • Nhanh chóng xây dựng các chuỗi bị đảo ngược thông qua việc cắt
  • Tạo các bản sao đảo ngược của các chuỗi hiện có bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0 và
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    1
  • Sử dụng phép lặp và đệ quy để tạo các chuỗi đảo ngược bằng tay
  • Lặp lại chuỗi của bạn theo thứ tự ngược lại
  • Sắp xếp các chuỗi của bạn theo thứ tự giảm dần bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    2

Mặc dù bản thân chủ đề này có thể không có nhiều trường hợp sử dụng thú vị, nhưng việc hiểu cách đảo ngược chuỗi có thể hữu ích trong các cuộc phỏng vấn mã hóa cho các vị trí cấp đầu vào. Bạn cũng sẽ thấy rằng việc nắm vững các cách khác nhau để đảo ngược chuỗi có thể giúp bạn thực sự khái niệm hóa tính bất biến của chuỗi trong Python, đây là một tính năng đáng chú ý của ngôn ngữ này

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bartosz

Sadie

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề