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
Cắt lát | 0,449 USEC | 1x |
Danh sách đảo ngược [] | 2.46 USEC | 5,48x |
đảo ngược [] + tham gia [] | 2,49 USEC | 5,55x |
cho vòng lặp | 5,5 USEC | 12,25x |
trong khi lặp lại | 9,4 USEC | 20,94x |
Đệ quy | 24.3 USEC | 54.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