Tìm hiểu làm thế nào để đảo ngược một chuỗi trong Python.
Không có chức năng tích hợp để đảo ngược một chuỗi trong Python.
Cách nhanh nhất [và dễ nhất?] Là sử dụng một lát cắt lùi, -1
.
Thí dụ
Đảo ngược chuỗi "Hello World":
txt = "Hello World" [::-1] in [txt]
print[txt]
Hãy tự mình thử »
Ví dụ giải thích
Chúng tôi có một chuỗi, "Hello World", mà chúng tôi muốn đảo ngược:
Chuỗi để đảo ngược
txt = "Hello World" [::-1] in [txt]"Hello World"[::-1]
print[txt]
Tạo một lát bắt đầu ở cuối chuỗi và di chuyển về phía sau.
Trong ví dụ cụ thể này, câu lệnh SLICE [::-1]
có nghĩa là bắt đầu ở cuối chuỗi và kết thúc ở vị trí 0, di chuyển với bước -1
, tiêu cực, có nghĩa là một bước lùi.
Lát chuỗi
txt = "Hello World" [::-1] in [txt][::-1]
print[txt]
Tạo một lát bắt đầu ở cuối chuỗi và di chuyển về phía sau.
Trong ví dụ cụ thể này, câu lệnh SLICE [::-1]
có nghĩa là bắt đầu ở cuối chuỗi và kết thúc ở vị trí 0, di chuyển với bước -1
, tiêu cực, có nghĩa là một bước lùi.
Lát chuỗi
Bây giờ chúng ta có một chuỗi
1 có nội dung "Xin chào thế giới" ngược.Reverse String using slicing = FE∂çBA
print[txt]
In chuỗi để chứng minh kết quả
In danh sách
Thí dụ
Đảo ngược chuỗi "Hello World":
return x[::-1]
txt = "Hello World" [::-1] in [txt]
Hãy tự mình thử »
Hãy tự mình thử »
Ví dụ giải thích
Chúng tôi có một chuỗi, "Hello World", mà chúng tôi muốn đảo ngược:
In chuỗi để chứng minh kết quả
In danh sách
return x[::-1]
txt = "Hello World" [::-1] in [txt]
Hãy tự mình thử »
Ví dụ giải thích
Lát chuỗi
In danh sách
return x[::-1]
txt = "Hello World" [::-1] in [txt]
Hãy tự mình thử »
Ví dụ giải thích
Chúng tôi có một chuỗi, "Hello World", mà chúng tôi muốn đảo ngược:
In danh sách
return x[::-1]
txt = "Hello World" [::-1] in [txt]
Hãy tự mình thử »
Ví dụ giải thích
Chúng tôi có một chuỗi, "Hello World", mà chúng tôi muốn đảo ngược:
Chuỗi để đảo ngược
return x[::-1]mytxt = my_function["I wonder how this text looks like
backwards"]print[mytxt]
txt = "Hello World" [::-1] in [txt]
Tạo một lát bắt đầu ở cuối chuỗi và di chuyển về phía sau.
In danh sách
return x[::-1]
txt = "Hello World" [::-1] in [txt]
print[mytxt]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 hàm
2 của nóReverse String using slicing = FE∂çBA
- 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 slicing = FE∂çBA
31.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
4. 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