Hướng dẫn reverse string using while loop in python - đảo ngược chuỗi bằng cách sử dụng vòng lặp while trong python

Chuỗi Python không có hàm Reverse () tích hợp. Tuy nhiên, có nhiều cách khác nhau để đảo ngược một chuỗi trong Python.

1. Làm thế nào để đảo ngược một chuỗi trong Python?

Một số cách phổ biến để đảo ngược chuỗi là:

  • Sử dụng cắt để tạo một bản sao ngược của chuỗi.
  • Sử dụng cho vòng lặp và nối lại các ký tự theo thứ tự ngược lại
  • Sử dụng trong khi lặp để lặp lại các ký tự chuỗi theo thứ tự ngược lại và nối chúng
  • Sử dụng hàm nối chuỗi () với trình lặp đảo ngược ()
  • Tạo danh sách từ chuỗi và sau đó gọi chức năng reverse() của nó
  • Sử dụng đệ quy

1.1) Chuỗi đảo ngược Python bằng cách cắt lát

def reverse_slicing(s):
    return s[::-1]

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using slicing =', reverse_slicing(input_str))

Nếu bạn chạy trên tập lệnh Python, đầu ra sẽ là:

Reverse String using slicing = FE∂çBA

1.2) Đảo ngược chuỗi bằng cách sử dụng cho vòng lặp

def reverse_for_loop(s):
    s1 = ''
    for c in s:
        s1 = c + s1  # appending chars in reverse order
    return s1

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using for loop =', reverse_for_loop(input_str))

Đầu ra: Reverse String using for loop = FE∂çBA

1.3) Đảo ngược một chuỗi bằng cách sử dụng vòng lặp

def reverse_while_loop(s):
    s1 = ''
    length = len(s) - 1
    while length >= 0:
        s1 = s1 + s[length]
        length = length - 1
    return s1

input_str = 'ABç∂EF'

if __name__ == "__main__":
    print('Reverse String using while loop =', reverse_while_loop(input_str))

1.4) Đảo ngược một chuỗi bằng cách sử dụng tham gia () và đảo ngược ()

def reverse_join_reversed_iter(s):
    s1 = ''.join(reversed(s))
    return s1

1.5) Chuỗi đảo ngược Python bằng Danh sách Reverse ()

def reverse_list(s):
    temp_list = list(s)
    temp_list.reverse()
    return ''.join(temp_list)

1.6) Chuỗi đảo ngược Python bằng cách sử dụng đệ quy

def reverse_recursion(s):
    if len(s) == 0:
        return s
    else:
        return reverse_recursion(s[1:]) + s[0]

2. Cách tốt nhất để đảo ngược một chuỗi trong Python

Chúng ta có thể đảo ngược một chuỗi thông qua nhiều thuật toán. Chúng tôi đã thấy sáu người trong số họ. Nhưng bạn nên chọn đảo ngược một chuỗi. Chúng ta có thể sử dụng mô -đun thời gian để chạy nhiều lần lặp của các chức năng này và có thời gian trung bình cần thiết để chạy chúng. Tất cả các chức năng trên được lưu trữ trong tập lệnh Python có tên

Reverse String using slicing = FE∂çBA
0. Tôi đã thực hiện tất cả các chức năng này từng chức năng một trong 1,00.000 lần bằng mô -đun thời gian và có mức trung bình của 5 lần chạy tốt nhất.

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_slicing("ABç∂EF"*10)'
100000 loops, best of 5: 0.449 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_list("ABç∂EF"*10)'
100000 loops, best of 5: 2.46 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_join_reversed_iter("ABç∂EF"*10)'
100000 loops, best of 5: 2.49 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_for_loop("ABç∂EF"*10)'
100000 loops, best of 5: 5.5 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_while_loop("ABç∂EF"*10)'
100000 loops, best of 5: 9.4 usec per loop

$ python3.7 -m timeit --number 100000 --unit usec 'import string_reverse' 'string_reverse.reverse_recursion("ABç∂EF"*10)'
100000 loops, best of 5: 24.3 usec per loop

Hướng dẫn reverse string using while loop in python - đảo ngược chuỗi bằng cách sử dụng vòng lặp while trong python
Bảng dưới đây trình bày kết quả và sự chậm chạp của một thuật toán từ cái tốt nhất.

Thuật toánThời gian thực hiện thời gian (tốt nhất của 5)Sự chậm chạp
Cắt lát0,449 USEC1x
Danh sách đảo ngược ()2.46 USEC5,48x
đảo ngược () + tham gia ()2,49 USEC5,55x
cho vòng lặp5,5 USEC12,25x
trong khi lặp lại9,4 USEC20,94x
Đệ quy24.3 USEC54.12x

3. Tóm tắt

Chúng ta nên sử dụng cắt lát để đảo ngược một chuỗi trong Python. Mã của nó rất đơn giản và nhỏ và chúng tôi không cần phải viết logic của riêng mình để đảo ngược chuỗi. Ngoài ra, đó là cách nhanh nhất để đảo ngược một chuỗi như được xác định bởi các lần thực thi thử nghiệm trên.

Bạn có thể kiểm tra toàn bộ tập lệnh Python và nhiều ví dụ về Python từ Kho lưu trữ GitHub của chúng tôi.

4. Tài liệu tham khảo

  • đảo ngược () API DOC
  • str.join () API DOC