Hướng dẫn dùng string reverser python
Learn how to reverse a String in Python. Show
Nội dung chính
There is no built-in function to reverse a String in Python. The fastest (and easiest?) way is to use a slice that steps backwards, ExampleReverse the string "Hello World": txt = "Hello World"[::-1] Try it Yourself » Example ExplainedWe have a string, "Hello World", which we want to reverse: The String to Reversetxt = "Hello World"[::-1] Create a slice that starts at the end of the string, and moves backwards. In this particular example, the slice statement Slice the Stringtxt = "Hello World"[::-1] Now we have a string Print the String to demonstrate the result Print the Listtxt = "Hello World"[::-1] Create a FunctionIf you like to have a function where you can send your strings, and return them backwards, you can create a function and insert the code from the example above. Example def my_function(x): mytxt = my_function("I wonder how this text looks like backwards") print(mytxt) Try it Yourself » Example ExplainedCreate a function that takes a String as an argument. Create a Functiondef my_function(x): mytxt = my_function("I wonder how this text looks like backwards") print(mytxt) Slice the string starting at the end of the string and move backwards. Slice the Stringdef my_function(x): mytxt = my_function("I wonder how this text looks like backwards") print(mytxt) Return the backward String Return the Stringdef my_function(x): mytxt = my_function("I wonder how this text looks like backwards") print(mytxt ) Call the function, with a string as a parameter: Call the Functiondef
my_function(x): Print the result: Print the Resultdef my_function(x): mytxt = my_function("I wonder how this text looks like backwards") print(mytxt)Một cái nhìn tổng quan về ba cách chính để đảo ngược một string trong Python, bao gồm cả các vấn đề về hiệu năng. Nội dung chính
Đâu là cách tốt nhất để đảo ngược một string trong Python? Dù trong thực tế việc đảo ngược một string chẳng được sử dụng thường xuyên, nó vẫn luôn là một câu hỏi phổ biến trong các buổi phỏng vấn:
Một biến thể của câu hỏi này chính là viết một hàm check xem một string có là palindrome hay không. Tức là dù đọc xuôi hay đọc ngược, nó cùng là một string:
Rõ ràng chúng ta cần tìm ra cách để đảo ngược một string để implement hàm Đối tượng
Trong tutorial này, bạn sẽ học ba cách chính để đảo ngược string trong Python: Option 1: Reversing a Python String With the [::-1] Slicing TrickString tuân theo quy chuẩn sequence (chuỗi) trong Python. Và tất cả các sequence hỗ trợ một feature thú vị được gọi là slicing. Bạn có thể xem slicing như là phần mở rộng của cú pháp chỉ mục ngoặc vuông (square-brackets indexing syntax). Nó bao gồm một trường hợp đặc biệt mà ở đó slicing một sequence với
Tất nhiên, bạn có thể wrap biểu thức slicing này vào trong một hàm để làm cho mọi thứ trở nên rõ ràng hơn:
Bạn thích giải pháp này đến nhường nào? Nó ngắn và ngọt ngào - nhưng, theo suy nghĩ của tôi, điểm trừ lớn nhất của việc đảo ngược một string với slicing chính là nó sử dụng một feature cao cấp của Python mà một số nhà phát triển gọi là "arcane". Tôi không trách họ - list slicing có thể gây khó hiểu khi bạn bắt gặp cú pháp kỳ quái của nó những lần đầu tiên. Khi tôi đọc code Python có sử dụng slicing, tôi thường phải giảm tốc độ và tập trung dịch câu lệnh để chắc chắn rằng tôi hiểu những gì đang diễn ra. Phàn nàn lớn nhất ở đây chính là cú pháp slicing Vì lý do này, tôi có cảm giác việc sử dụng feature slicing để nghịch đảo một string là một giải pháp chấp nhận được nhưng nó có thể là trở ngại với người không thạo. Option 2: Reversing a Python String Using reversed() and str.join()Đảo ngược string sử dụng reverse iteration với hàm có sẵn
Sử dụng Đây là một kỹ thuật mạnh mẽ tận dụng sức mạnh của quy chuẩn iterator (iterator protocol). Cho đến bây giờ, tất cả những gì bạn thấy là cách lặp các ký tự của một string theo thứ tự đảo ngược. Nhưng làm thế nào bạn có
thể sử dụng kỹ thuật này để tạo ra một bản copy đảo ngược của một string với hàm Đây:
Đoạn code này sử dụng phương thức Tất nhiên, bạn có thể một lần nữa tách đoạn code này thành một hàm cho dễ đọc:
Tôi thực sự thích cách tiếp cận này. Mọi thứ trở nên rõ ràng hơn, và kể cả người mới tiếp cận Python cũng có thể hiểu một cách trực quan những gì đang diễn ra. Một cách tiếp cận nữa bạn nên biết: Option 3: The “Classic” In-Place String Reversal Algorithm Ported to PythonĐây là giải thuật đảo ngược string cổ điển trong các giáo trình. Bởi vì string Python là immutable (không thể thay đổi), đầu tiên bạn cần convert string đầu vào thành một mutable list các ký tự. Sau đó bạn có thể thực hiện việc hoán đổi các ký tự tại chỗ (in-place):
Như bạn có thể thấy, giải pháp này hoàn toàn unpythonic. Nó không tận dụng được sức mạnh của Python. Và hơn thế nữa, nó còn là giải pháp tồi nhất về mặt hiệu năng. Bạn sẽ thấy rõ điều này trong phần tiếp theo. Performance ComparisonSau khi implement các cách đảo ngược string trong tutorial này, tôi lại hiếu kỳ về hiệu năng của chúng.
Well, thật thú vị... Đây là kết quả thu được ở dạng bảng: Summary: Reversing Strings in PythonNguồn: https://dbader.org/blog/python-reverse-string |