Hướng dẫn dùng reversed text python

Trong Python, một chuỗi là một chuỗi các ký tự Unicode. Mặc dù Python hỗ trợ nhiều chức năng để thao tác chuỗi, nhưng nó không có chức năng hoặc phương pháp sẵn có được thiết kế rõ ràng để đảo ngược chuỗi.

>>> 'hocdevops'.reverse[]
Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'

Đảo ngược chuỗi không phải là một hoạt động phổ biến trong lập trình và thường được sử dụng trong các cuộc phỏng vấn.

Bài viết này đi qua nhiều cách khác nhau để đảo ngược một chuỗi trong Python.

Nội dung chính

  • 1 Sử dụng String Slice
  • 2 Sử dụng Hàm reversed[]
  • 3 Sử dụng List reverse[]
  • 4 Sử dụng hàm Đệ quy
  • 5 Phân tích so sánh
  • 6 Kết thúc
    • 6.1 Share this:
    • 6.2 Like this:

Sử dụngString Slice

Hiểu cách lập chỉ mục hoạt động trong Python là rất quan trọng để thực hiện thao tác String Slice. Nói chung, số Chỉ mục được sử dụng để truy cập các ký tự cụ thể trong một chuỗi.

Có hai loại lập chỉ mục; chỉ số dương và âm.

Bạn có thể truy cập ký tự , thông qua số chỉ số dương hoặc thông qua số chỉ số âm là:

>>> print['hocdevops'[2]]

Output:

c
>>> print['hocdevops'[-6]]

Output:

c

Chúng ta có thể gọi ra một loạt các kí tự từ một chuỗi thông qua một kỹ thuật cắt. Cắt là hoạt động trích xuất chuỗi của một phần tử con từ chuỗi nhất định.

Cú pháp Slice:

string[start:stop:step]
  • Đối số đầu tiên chỉ định chỉ mục mà tại đó khai thác bắt đầu. Khi một chỉ mục âm được sử dụng, nó cho biết một sự bù đắp từ cuối chuỗi. Nếu đối số này bị bỏ qua, việc cắt bắt đầu từ chỉ mục 0.
  • Đối số thứ hai chỉ định chỉ mục trước đó để kết thúc khai thác; Kết quả không bao gồm element. Khi một chỉ mục âm được sử dụng, nó cho biết một sự bù đắp từ cuối chuỗi. Nếu đối số này bị bỏ qua hoặc lớn hơn chiều dài của chuỗi, việc cắt đi đến cuối chuỗi.
  • Đối số thứ ba là tùy chọn và chỉ định bước cắt. Khi đối số không được sử dụng, nó mặc định là 1. Khi một giá trị âm được sử dụng, lát lấy các yếu tố theo thứ tự ngược lại.

Kết quả của việc cắt một chuỗi là một chuỗi mới chứa các yếu tố được chiết xuất và chuỗi ban đầu không được sửa đổi.

Để đảo ngược một chuỗi bằng cách sử dụng cắt, ta bỏ qua và đối số và sử dụng một bước tăng âm.

Bước tăng âm của có nghĩa là việc cắt bắt đầu ở phần tử cuối cùng và kết thúc ở phần tử đầu tiên, dẫn đến một chuỗi đảo ngược.

>>> print['hocdevops'[::-1]]

Output:

spovedcoh

Bạn cũng có thể xác định một hàm tùy chỉnh và sử dụng nó để đảo ngược chuỗi:

def rev_str_thru_slicing[str_]:
    return str_[::-1]

INPUT_STRING = "hocdevops"

if __name__ == '__main__':
    print["INPUT STRING -", INPUT_STRING]
    print["REVERSED STRING -", rev_str_thru_slicing[INPUT_STRING]]

Output

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
0

Sử dụng Hàm reversed[]

Chức năng tích hợp xử lý các mục chuỗi theo thứ tự ngược lại và trả về bộ lặp ngược đã đảo ngược.

Trong ví dụ dưới đây, các phần tử của bộ lặp lại đảo ngược được thêm vào một chuỗi trống bằng cách sử dụng toán tử join:

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
1

Output:

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
2

Sử dụng List reverse[]

Để đảo ngược một chuỗi với phương pháp List;trước tiên, chuỗi cần được chuyển đổi thành một danh sách bằng cách sử dụng trình xây dựng. Sau đó, các mục danh sách được đảo ngược tại chỗ với phương pháp và cuối cùng, các mục danh sách được nối thành một chuỗi bằng cách sử dụng phương pháp.

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
7
Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
8
Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
7
>>> print['hocdevops'[2]]
0

Đây là một ví dụ:

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
3

Bản sao

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
4

Sử dụng hàm Đệ quy

Trong Python, một hàm đệ quy là một hàm tự gọi cho đến khi một số điều kiện được đáp ứng.

Trong đoạn mã bên dưới, hàm tự gọi cho đến khi chiều dài chuỗi lớn hơn 0. Trong mỗi cuộc gọi, chuỗi được cắt, chỉ để lại ký tự đầu tiên. Sau đó, nó được kết hợp với các kí tự bị cắt.

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
5

Phân tích so sánh

Trong phần này, chúng ta sẽ thực hiện một so sánh đơn giản giữa bốn phương pháp được xác định này để xác định hiệu quả của chúng. Chúng ta sẽ phân tích hiệu suất bằng cách sử dụng một mô-đun Python được gọi là “timeit”. Nó cung cấp thời gian thực hiện các đoạn mã. Tùy chọn “lặp lại” của mô-đun “timeit” giúp lặp lại việc thực thi mã một triệu lần. Chúng ta có thể hiểu đầu ra như một thời gian trung bình bằng cách thực hiện đoạn mã một triệu lần.

Phương phápThời gian thực hiệnTỷ lệ so sánh Calc.Slicing0.231xList Reverse1.637xJoin & Reserved1.737,5xĐệ quy19.1983x

Bảng trên cho thấy phương pháp cắt nhanh hơn bảy lần so với cách tiếp cận List Reverse, nhanh hơn 7,5 lần so với cách tiếp cận Join & Reserved và nhanh hơn 83 lần so với phương pháp đệ quy. Vì vậy, cắt là cách nhanh nhất và tốt nhất để đảo ngược chuỗi.

Các kết quả trên là phân tích so sánh các phương pháp được thảo luận để đảo ngược chuỗi trong cùng một môi trường. Các con số có thể khác nhau trong các môi trường máy tính khác nhau, nhưng tỷ lệ có thể sẽ vẫn giữ nguyên.

Traceback [most recent call last]:
File "", line 1, in 
AttributeError: 'str' object has no attribute 'reverse'
6

Kết thúc

Python không có bất kỳ function tích hợp nào để đảo ngược chuỗi, nhưng chúng ta có thể sử dụng các phương pháp khác để đảo ngược chuỗi. Phân tích thử nghiệm hồi quy cho thấy phương pháp cắt là cách nhanh nhất để đảo ngược một chuỗi.

Chủ Đề