Làm thế nào để bạn lật các từ trong python?

Chúng tôi được cung cấp một chuỗi làm đầu vào trong Python và nhiệm vụ của chúng tôi là đảo ngược các từ có trong chuỗi. Chúng tôi sẽ sử dụng các hàm chuỗi khác nhau trong Python để hoàn thành chương trình

Phạm vi

  • Trong bài viết này, chúng ta sẽ tìm hiểu cách đảo ngược các từ của một chuỗi được nhập làm đầu vào trong Python
  • Chúng ta sẽ nghiên cứu cách triển khai các hàm chuỗi tích hợp sẵn của Python như split[], Reverse[] và join[] trong chương trình của chúng ta để đảo ngược các từ trong một chuỗi

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

Trong Python, một chuỗi được tạo bằng cách đặt một dòng ký tự bên trong dấu nháy đơn, nháy kép hoặc nháy ba. Đảo ngược từ trong một chuỗi có nghĩa là chúng ta phải đảo ngược vị trí của tất cả các từ trong chuỗi đã cho

ví dụ

Chúng ta hãy xem xét một số ví dụ

Input: Hello World
Output: World Hello

Input: I love Programming
Output: Programming love I

Phương pháp - 1. Đảo ngược các từ riêng lẻ và sau đó đảo ngược toàn bộ chuỗi

Trực giác của cách tiếp cận này là trước tiên đảo ngược từng từ có trong chuỗi riêng lẻ,

Ví dụ.
Tôi thích viết mã, tôi là gnidoc. Bây giờ, chúng ta phải đảo ngược toàn bộ chuỗi để có được kết quả mong muốn, trong trường hợp của ví dụ này sẽ được mã hóa như I.

Bây giờ chúng ta hãy xem cách triển khai phương pháp này để đảo ngược các từ trong một chuỗi bằng Python

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]

đầu ra

phân tích độ phức tạp

Vì chúng ta duyệt qua toàn bộ chuỗi một lần để đảo ngược các từ trong chuỗi, Độ phức tạp Thời gian là O[n]O[n]O[n], trong đó nnn là kích thước của chuỗi

Mặc dù cần có một không gian phụ trợ để lưu trữ chuỗi theo cách ngược lại, Độ phức tạp của Không gian là O[1]O[1]O[1]

>>> s = 'Python is the best programming language'
>>> s[::-1]
'egaugnal gnimmargorp tseb eht si nohtyP'

CẬP NHẬT

nếu bạn cần thực hiện theo vòng lặp, bạn có thể sử dụng phạm vi để quay ngược lại

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'

hoặc,

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
97

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'

Trong bài viết này, bạn sẽ học, Trong python, cách đảo ngược thứ tự các từ trong chuỗi. Xin lưu ý rằng ở đây chúng tôi không đảo ngược ký tự

Ví dụ

# Program to explain reverse Word in String or Sentence
# Using for split[] function

# Define a function
def reverse_word[string]:
    # Split string with blank space
    # And convert to list
    rlist=string.split[]

    # Reverse list using reverse function
    rlist.reverse[]

    # Convert list to string with space
    return " ".join[rlist]

string = 'This is Our Website Stechies'

# Print Original and Reverse string
print['Original String: ', string]
print['Reverse String: ', reverse_word[string]]

đầu ra.  

Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This

Giải trình

Trong ví dụ trên, đầu tiên, chúng ta chuyển đổi một chuỗi thành danh sách bằng hàm split[], sau đó đảo ngược thứ tự của danh sách bằng hàm reverse[] và chuyển đổi danh sách ngược thành chuỗi bằng phương thức join[]

Khi bạn thường xuyên sử dụng các chuỗi Python trong mã của mình, bạn có thể phải làm việc với chúng theo thứ tự ngược lại. Python bao gồm một số công cụ và kỹ thuật tiện dụng có thể giúp bạn trong những tình huống này. Với chúng, bạn sẽ có thể tạo các bản sao đảo ngược của các chuỗi hiện có một cách nhanh chóng và hiệu quả

Biết về các công cụ và kỹ thuật đảo ngược chuỗi này trong Python sẽ giúp bạn cải thiện trình độ của mình với tư cách là nhà phát triển Python

Trong hướng dẫn này, bạn sẽ học cách

  • Nhanh chóng xây dựng các chuỗi bị đảo ngược thông qua việc cắt
  • Tạo các bản sao đảo ngược của các chuỗi hiện có bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0 và
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    1
  • Sử dụng phép lặp và đệ quy để đảo ngược các chuỗi hiện có theo cách thủ công
  • Thực hiện lặp lại ngược lại trên chuỗi của bạn
  • Sắp xếp các chuỗi của bạn theo thứ tự ngược lại bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    2

Để tận dụng tối đa hướng dẫn này, bạn nên biết kiến ​​thức cơ bản về chuỗi, vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
4 cũng như đệ quy

Tải xuống miễn phí. Nhận một chương mẫu từ Python Basics. Giới thiệu thực tế về Python 3 để xem cách bạn có thể đi từ trình độ mới bắt đầu lên trình độ trung cấp trong Python với một chương trình giảng dạy hoàn chỉnh, cập nhật về Python 3. 8

Đảo ngược chuỗi với các công cụ Python cốt lõi

Làm việc với các chuỗi Python theo thứ tự ngược lại có thể là một yêu cầu trong một số tình huống cụ thể. Ví dụ: giả sử bạn có _______ 75 mạnh và bạn muốn đảo ngược nó một cách nhanh chóng để có được _______ 76. Bạn có thể sử dụng công cụ Python nào để trợ giúp?

Các chuỗi là bất biến trong Python, do đó, không thể đảo ngược một chuỗi đã cho tại chỗ. Bạn sẽ cần tạo các bản sao đảo ngược của các chuỗi mục tiêu của mình để đáp ứng yêu cầu

Python cung cấp hai cách đơn giản để đảo ngược chuỗi. Vì các chuỗi là các chuỗi nên chúng có thể lập chỉ mục, có thể cắt và có thể lặp lại. Các tính năng này cho phép bạn sử dụng tính năng cắt để tạo trực tiếp bản sao của một chuỗi đã cho theo thứ tự ngược lại. Tùy chọn thứ hai là sử dụng hàm tích hợp sẵn

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 để tạo một trình lặp mang lại các ký tự của chuỗi đầu vào theo thứ tự ngược lại

Loại bỏ các quảng cáo

Đảo ngược chuỗi thông qua cắt lát

Cắt lát là một kỹ thuật hữu ích cho phép bạn trích xuất các mục từ một chuỗi nhất định bằng cách sử dụng các kết hợp chỉ số nguyên khác nhau được gọi là độ lệch. Khi nói đến việc cắt chuỗi, các độ lệch này xác định chỉ mục của ký tự đầu tiên trong quá trình cắt, chỉ mục của ký tự dừng quá trình cắt và một giá trị xác định số lượng ký tự bạn muốn chuyển qua trong mỗi lần lặp

Để cắt một chuỗi, bạn có thể sử dụng cú pháp sau

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
5

Hiệu số của bạn là

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 và

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80. Biểu thức này trích xuất tất cả các ký tự từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 đến

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
82 bởi

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80. Bạn sẽ nhìn sâu hơn vào ý nghĩa của tất cả những điều này chỉ trong giây lát

Tất cả các phần bù là tùy chọn và chúng có các giá trị mặc định sau

OffsetGiá trị mặc định

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
85
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
87

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
89

Ở đây,

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 đại diện cho chỉ mục của ký tự đầu tiên trong lát cắt, trong khi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 giữ chỉ mục dừng hoạt động cắt lát. Phần bù thứ ba,

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80, cho phép bạn quyết định số lượng ký tự mà phần cắt sẽ nhảy qua trên mỗi lần lặp

Ghi chú. Thao tác cắt lát kết thúc khi nó đạt đến chỉ số bằng hoặc lớn hơn

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9. Điều này có nghĩa là nó không bao giờ bao gồm mục tại chỉ mục đó, nếu có, trong phần cuối cùng

Độ lệch

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80 cho phép bạn tinh chỉnh cách bạn trích xuất các ký tự mong muốn từ một chuỗi trong khi bỏ qua các ký tự khác

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
3

Ở đây, trước tiên bạn cắt

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
45 mà không cung cấp các giá trị bù trừ rõ ràng để có được bản sao đầy đủ của chuỗi gốc. Để đạt được điều này, bạn cũng có thể sử dụng một phép cắt bỏ dấu hai chấm thứ hai [
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
46]. Với

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80 bằng với
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
48, phép cắt sẽ lấy mọi ký tự khác từ chuỗi mục tiêu. Bạn có thể chơi xung quanh với các độ lệch khác nhau để hiểu rõ hơn về cách thức hoạt động của việc cắt lát

Tại sao việc cắt và phần bù thứ ba này lại liên quan đến việc đảo ngược chuỗi trong Python? . Nếu bạn cung cấp giá trị âm cho

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80, thì quá trình cắt sẽ chạy ngược lại, nghĩa là từ phải sang trái

Ví dụ: nếu bạn đặt

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
80 bằng
>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
12, thì bạn có thể tạo một lát cắt truy xuất tất cả các ký tự theo thứ tự ngược lại

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'

Phép cắt này trả về tất cả các ký tự từ đầu bên phải của chuỗi, trong đó chỉ số bằng

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
13, trở lại đầu bên trái của chuỗi, trong đó chỉ số là

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
85. Khi bạn sử dụng thủ thuật này, bạn sẽ nhận được một bản sao của chuỗi gốc theo thứ tự ngược lại mà không ảnh hưởng đến nội dung gốc của
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
45

Một kỹ thuật khác để tạo một bản sao đảo ngược của một chuỗi hiện có là sử dụng

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
16. Chữ ký của chức năng tích hợp này là như sau

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
8

Hàm này nhận ba đối số, với cùng ý nghĩa của các phần bù trong toán tử cắt và trả về một đối tượng lát đại diện cho tập hợp các chỉ số là kết quả của việc gọi

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
17

Bạn có thể sử dụng

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
16 để mô phỏng việc cắt lát
>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
19 và đảo ngược chuỗi của bạn một cách nhanh chóng. Hãy tiếp tục và chạy lệnh gọi sau tới
>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
16 bên trong dấu ngoặc vuông

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
4

Truyền

# Program to explain reverse Word in String or Sentence
# Using for split[] function

# Define a function
def reverse_word[string]:
    # Split string with blank space
    # And convert to list
    rlist=string.split[]

    # Reverse list using reverse function
    rlist.reverse[]

    # Convert list to string with space
    return " ".join[rlist]

string = 'This is Our Website Stechies'

# Print Original and Reverse string
print['Original String: ', string]
print['Reverse String: ', reverse_word[string]]
31 cho hai đối số đầu tiên của
>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
16 cho hàm biết rằng bạn muốn dựa vào hành vi mặc định bên trong của nó, giống như một phép cắt tiêu chuẩn không có giá trị cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9. Nói cách khác, chuyển
# Program to explain reverse Word in String or Sentence
# Using for split[] function

# Define a function
def reverse_word[string]:
    # Split string with blank space
    # And convert to list
    rlist=string.split[]

    # Reverse list using reverse function
    rlist.reverse[]

    # Convert list to string with space
    return " ".join[rlist]

string = 'This is Our Website Stechies'

# Print Original and Reverse string
print['Original String: ', string]
print['Reverse String: ', reverse_word[string]]
31 đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
8 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
9 có nghĩa là bạn muốn một lát cắt từ đầu bên trái sang đầu bên phải của dãy bên dưới

Loại bỏ các quảng cáo

Đảo ngược chuỗi với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Cách thứ hai và được cho là cách tiếp cận Pythonic nhất để đảo ngược chuỗi là sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 cùng với
Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This
31. Nếu bạn chuyển một chuỗi tới
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0, bạn sẽ nhận được một trình vòng lặp mang lại các ký tự theo thứ tự ngược lại

>>>

>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
1

Khi bạn gọi

Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This
33 với đối số là
Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This
34, bạn sẽ nhận được từng ký tự từ đầu bên phải của chuỗi gốc

Một điểm quan trọng cần lưu ý về

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 là trình vòng lặp kết quả mang lại các ký tự trực tiếp từ chuỗi gốc. Nói cách khác, nó không tạo ra một chuỗi đảo ngược mới mà đọc ngược các ký tự từ chuỗi hiện có. Hành vi này khá hiệu quả về mức tiêu thụ bộ nhớ và có thể là một chiến thắng cơ bản trong một số ngữ cảnh và tình huống, chẳng hạn như phép lặp

Bạn có thể sử dụng iterator mà bạn nhận được từ việc gọi trực tiếp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 làm đối số cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1

>>>

# Program to explain reverse Word in String or Sentence
# Using for split[] function

# Define a function
def reverse_word[string]:
    # Split string with blank space
    # And convert to list
    rlist=string.split[]

    # Reverse list using reverse function
    rlist.reverse[]

    # Convert list to string with space
    return " ".join[rlist]

string = 'This is Our Website Stechies'

# Print Original and Reverse string
print['Original String: ', string]
print['Reverse String: ', reverse_word[string]]
3

Trong biểu thức một dòng này, bạn chuyển trực tiếp kết quả của việc gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 làm đối số cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1. Kết quả là bạn nhận được một bản sao đảo ngược của chuỗi đầu vào ban đầu. Sự kết hợp giữa
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 và
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 này là một lựa chọn tuyệt vời để đảo ngược chuỗi

Tạo chuỗi đảo ngược bằng tay

Cho đến giờ, bạn đã tìm hiểu về các công cụ và kỹ thuật cốt lõi của Python để đảo ngược chuỗi một cách nhanh chóng. Hầu hết thời gian, chúng sẽ là con đường của bạn. Tuy nhiên, bạn có thể cần đảo ngược một chuỗi bằng tay tại một số thời điểm trong cuộc phiêu lưu viết mã của mình

Trong phần này, bạn sẽ học cách đảo ngược chuỗi bằng cách sử dụng các vòng lặp và đệ quy rõ ràng. Kỹ thuật cuối cùng sử dụng phương pháp lập trình hàm với sự trợ giúp của hàm

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 của Python

Đảo ngược chuỗi trong một vòng lặp

Kỹ thuật đầu tiên bạn sẽ sử dụng để đảo ngược một chuỗi liên quan đến vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 và toán tử nối [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
64]. Với hai chuỗi là toán hạng, toán tử này trả về một chuỗi mới là kết quả của việc nối các chuỗi ban đầu. Toàn bộ hoạt động được gọi là nối

Ghi chú. Sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 là cách tiếp cận được đề xuất để nối các chuỗi trong Python. Nó sạch sẽ, hiệu quả và Pythonic

Đây là một hàm lấy một chuỗi và đảo ngược nó trong một vòng lặp bằng phép nối

>>>

Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This
3

Trong mỗi lần lặp, vòng lặp lấy một ký tự tiếp theo,

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
66, từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67 và nối nó với nội dung hiện tại của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68. Lưu ý rằng ban đầu
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68 chứa một chuỗi rỗng [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
50]. Chuỗi trung gian mới sau đó được gán lại cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68. Ở cuối vòng lặp,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68 giữ một chuỗi mới dưới dạng bản sao đảo ngược của chuỗi gốc

Ghi chú. Vì chuỗi Python là kiểu dữ liệu bất biến, bạn nên nhớ rằng các ví dụ trong phần này sử dụng một kỹ thuật lãng phí. Họ chỉ dựa vào việc tạo các chuỗi trung gian liên tiếp để loại bỏ chúng trong lần lặp lại tiếp theo

Nếu bạn thích sử dụng vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
4, thì đây là những gì bạn có thể làm để tạo một bản sao đảo ngược của một chuỗi đã cho

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
6

Ở đây, trước tiên bạn tính toán

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
54 của ký tự cuối cùng trong chuỗi đầu vào bằng cách sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
55. Vòng lặp lặp lại từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
54 xuống và bao gồm cả

def reverseWord[s, start, end]:
    while start < end:
        s[start], s[end] = s[end], s[start]
        start = start + 1
        end = end - 1

s = "I love Programming"

# convert string to a list of characters
s = list[s]
# to keep track of where each word starts
start = 0

while True:

    try:
        # find space
        end = s.index[' ', start]
        # Call reverseWord for each word
        reverseWord[s, start, end - 1]
        #update start variable
        start = end + 1

    # for the last word in string ValueError is returned
    except ValueError:
        # reverse the last word
        reverseWord[s, start, len[s] - 1]
        break

# reverse the entire list
s.reverse[]

# convert the character list back to string
s = "".join[s]

print[s]
85. Trong mỗi lần lặp lại, bạn sử dụng toán tử gán tăng cường [
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
58] để tạo một chuỗi trung gian nối nội dung của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
68 với ký tự tương ứng từ
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67. Một lần nữa, kết quả cuối cùng là một chuỗi mới xuất phát từ việc đảo ngược chuỗi đầu vào

Loại bỏ các quảng cáo

Đảo ngược chuỗi với đệ quy

Bạn cũng có thể sử dụng đệ quy để đảo ngược chuỗi. Đệ quy là khi một hàm gọi chính nó trong phần thân của chính nó. Để ngăn chặn đệ quy vô hạn, bạn nên cung cấp trường hợp cơ sở tạo ra kết quả mà không cần gọi lại hàm. Thành phần thứ hai là trường hợp đệ quy, bắt đầu vòng lặp đệ quy và thực hiện hầu hết các tính toán

Đây là cách bạn có thể định nghĩa một hàm đệ quy trả về một bản sao đảo ngược của một chuỗi đã cho

>>>

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
5

Trong ví dụ này, trước tiên bạn kiểm tra trường hợp cơ sở. Nếu chuỗi đầu vào có đúng một ký tự, bạn trả lại chuỗi cho người gọi

Câu lệnh cuối cùng, là trường hợp đệ quy, gọi chính

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
301. Cuộc gọi sử dụng lát cắt
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
302 của chuỗi đầu vào làm đối số. Lát này chứa tất cả các ký tự trong
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67, ngoại trừ ký tự đầu tiên. Bước tiếp theo là thêm kết quả của lời gọi đệ quy cùng với chuỗi ký tự đơn
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
304, chứa ký tự đầu tiên của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67

Một vấn đề quan trọng cần lưu ý trong ví dụ trên là nếu bạn chuyển một chuỗi dài làm đối số cho

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
301, thì bạn sẽ nhận được một
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
307

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
30

Vượt qua giới hạn đệ quy mặc định của Python là một vấn đề quan trọng mà bạn nên xem xét trong mã của mình. Tuy nhiên, nếu bạn thực sự cần sử dụng đệ quy, thì bạn vẫn có tùy chọn đặt giới hạn đệ quy theo cách thủ công

Bạn có thể kiểm tra giới hạn đệ quy của trình thông dịch Python hiện tại của mình bằng cách gọi

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
308 từ
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
309. Theo mặc định, giá trị này thường là
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
310. Bạn có thể điều chỉnh giới hạn này bằng cách sử dụng
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
311 từ cùng một mô-đun,
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
309. Với các chức năng này, bạn có thể định cấu hình môi trường Python để giải pháp đệ quy của bạn có thể hoạt động. Đi trước và cung cấp cho nó một thử

Sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 để đảo ngược chuỗi

Nếu bạn thích sử dụng phương pháp lập trình chức năng, bạn có thể sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 từ
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
315 để đảo ngược chuỗi. Python's
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 lấy chức năng gấp hoặc rút gọn và có thể lặp lại làm đối số. Sau đó, nó áp dụng hàm được cung cấp cho các mục trong đầu vào có thể lặp lại và trả về một giá trị tích lũy duy nhất

Đây là cách bạn có thể tận dụng lợi thế của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 để đảo ngược chuỗi

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
31

Trong ví dụ này, hàm

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
318 nhận hai chuỗi và nối chúng theo thứ tự ngược lại. Cuộc gọi đến
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
62 áp dụng
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
318 cho
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67 trong một vòng lặp và xây dựng một bản sao đảo ngược của chuỗi ban đầu

Lặp qua chuỗi ngược

Đôi khi bạn có thể muốn lặp qua các chuỗi hiện có theo thứ tự ngược lại, một kỹ thuật thường được gọi là lặp ngược. Tùy thuộc vào nhu cầu cụ thể của bạn, bạn có thể thực hiện phép lặp ngược trên chuỗi bằng cách sử dụng một trong các tùy chọn sau

  • Hàm tích hợp
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0
  • Toán tử cắt lát,
    >>> result = ""
    >>> for i in reversed[s]:
    ..     result += i
    .. 
    >>> result
    'egaugnal gnimmargorp tseb eht si nohtyP'
    
    19

Phép lặp ngược được cho là trường hợp sử dụng phổ biến nhất của các công cụ này, vì vậy trong một số phần sau, bạn sẽ tìm hiểu về cách sử dụng chúng trong ngữ cảnh lặp

Chức năng tích hợp
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Cách tiếp cận Pythonic và dễ đọc nhất để lặp qua một chuỗi theo thứ tự ngược lại là sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0. Bạn đã biết về chức năng này một lúc trước khi bạn sử dụng nó cùng với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 để tạo các chuỗi đảo ngược

Tuy nhiên, mục đích chính và trường hợp sử dụng của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 là hỗ trợ phép lặp ngược trên Python iterables. Với một chuỗi làm đối số,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 trả về một trình lặp tạo ra các ký tự từ chuỗi đầu vào theo thứ tự ngược lại

Đây là cách bạn có thể lặp qua một chuỗi theo thứ tự ngược lại với

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
32

Vòng lặp

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3 trong ví dụ này rất dễ đọc. Tên của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 thể hiện rõ ràng ý định của nó và truyền đạt rằng chức năng không tạo ra bất kỳ tác dụng phụ nào đối với dữ liệu đầu vào. Vì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 trả về một trình vòng lặp nên vòng lặp cũng hiệu quả đối với việc sử dụng bộ nhớ

Loại bỏ các quảng cáo

Toán tử cắt lát,
>>> result = ""
>>> for i in reversed[s]:
..     result += i
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
19

Cách tiếp cận thứ hai để thực hiện phép lặp ngược trên chuỗi là sử dụng cú pháp cắt mở rộng mà bạn đã thấy trước đó trong ví dụ về

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
334. Mặc dù cách tiếp cận này không ủng hộ hiệu quả bộ nhớ và khả năng đọc, nhưng nó vẫn cung cấp một cách nhanh chóng để lặp lại một bản sao đảo ngược của một chuỗi hiện có

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
33

Trong ví dụ này, bạn áp dụng toán tử cắt trên

Original :  This is Our Website Stechies
Reverse :  Stechies Website Our is This
34 để tạo một bản sao đảo ngược của nó. Sau đó, bạn sử dụng chuỗi đảo ngược mới đó để nạp vòng lặp. Trong trường hợp này, bạn đang lặp lại một chuỗi đảo ngược mới, vì vậy giải pháp này ít hiệu quả về bộ nhớ hơn so với sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0

Tạo chuỗi có thể đảo ngược tùy chỉnh

Nếu bạn đã từng thử đảo ngược danh sách Python, thì bạn biết rằng danh sách có một phương thức tiện dụng có tên là

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
337 để đảo ngược danh sách cơ bản tại chỗ. Vì các chuỗi là bất biến trong Python nên chúng không cung cấp một phương thức tương tự

Tuy nhiên, bạn vẫn có thể tạo một lớp con chuỗi tùy chỉnh bằng phương thức

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
337 bắt chước
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
339. Đây là cách bạn có thể làm điều đó

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
34

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
340 kế thừa từ
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341, là một lớp từ mô-đun
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
342.
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341 là một trình bao bọc xung quanh kiểu dữ liệu tích hợp sẵn
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
344. Nó được thiết kế đặc biệt để tạo các lớp con của
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
344.
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341 rất hữu ích khi bạn cần tạo các lớp giống như chuỗi tùy chỉnh với các chức năng bổ sung

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341 cung cấp chức năng giống như một chuỗi thông thường. Nó cũng thêm một thuộc tính công khai có tên là
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
348 giữ và cấp cho bạn quyền truy cập vào đối tượng chuỗi được bao bọc

Bên trong

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
340, bạn tạo
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
337. Phương pháp này đảo ngược chuỗi được bọc trong
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
348 và gán lại kết quả cho
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
348. Từ bên ngoài, gọi
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
337 hoạt động giống như đảo ngược chuỗi tại chỗ. Tuy nhiên, những gì nó thực sự làm là tạo một chuỗi mới chứa dữ liệu ban đầu theo thứ tự ngược lại

Đây là cách hoạt động của

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
340 trong thực tế

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
35

Khi bạn gọi

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
337 trên
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67, phương thức này hoạt động như thể bạn đang thực hiện một thay đổi tại chỗ của chuỗi bên dưới. Tuy nhiên, thực ra bạn đang tạo một chuỗi mới và gán nó trở lại chuỗi được bọc. Lưu ý rằng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67 hiện giữ chuỗi gốc theo thứ tự ngược lại

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341 cung cấp chức năng giống như lớp cha của nó là
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
344, nên bạn có thể sử dụng ngay lập tức
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 để thực hiện phép lặp ngược

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
36

Ở đây, bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 với
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
67 làm đối số để cung cấp vòng lặp
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
3. Cuộc gọi này hoạt động như mong đợi và trả về trình vòng lặp tương ứng vì
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
341 kế thừa hành vi được yêu cầu từ
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
344. Lưu ý rằng việc gọi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
0 không ảnh hưởng đến chuỗi gốc

Sắp xếp chuỗi Python theo thứ tự đảo ngược

Chủ đề cuối cùng bạn sẽ tìm hiểu là cách sắp xếp các ký tự của chuỗi theo thứ tự đảo ngược. Điều này có thể hữu ích khi bạn đang làm việc với các chuỗi không theo thứ tự cụ thể và bạn cần sắp xếp chúng theo thứ tự bảng chữ cái đảo ngược

Để tiếp cận vấn đề này, bạn có thể sử dụng

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2. Hàm tích hợp này trả về một danh sách chứa tất cả các mục của đầu vào có thể lặp lại theo thứ tự. Bên cạnh đầu vào có thể lặp lại,
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 cũng chấp nhận đối số từ khóa
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
369. Bạn có thể đặt đối số này thành
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
370 nếu bạn muốn đầu vào có thể lặp lại được sắp xếp theo thứ tự giảm dần

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
37

Khi bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 với một chuỗi làm đối số và
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
369 được đặt thành
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
370, bạn sẽ nhận được một danh sách chứa các ký tự của chuỗi đầu vào theo thứ tự đảo ngược hoặc giảm dần. Vì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 trả về một đối tượng
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
375, nên bạn cần một cách để biến danh sách đó trở lại thành một chuỗi. Một lần nữa, bạn có thể sử dụng
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 giống như bạn đã làm trong các phần trước

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
38

Trong đoạn mã này, bạn gọi

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 trên một chuỗi rỗng, đóng vai trò là dấu phân cách. Đối số của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
1 là kết quả của việc gọi
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 với
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
380 làm đối số và
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
369 được đặt thành
>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
370

Bạn cũng có thể tận dụng lợi thế của

>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 để lặp qua một chuỗi theo thứ tự được sắp xếp và đảo ngược

>>>

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
39

Đối số

>>> result = ""
>>> for i in xrange[len[s]-1, -1, -1]:
..     result += s[i]
.. 
>>> result
'egaugnal gnimmargorp tseb eht si nohtyP'
369 của
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 cho phép bạn sắp xếp các lần lặp, bao gồm cả chuỗi, theo thứ tự giảm dần. Vì vậy, nếu bạn cần các ký tự của chuỗi được sắp xếp theo thứ tự bảng chữ cái đảo ngược, thì
>>> letters = "ABCDEF"

>>> letters[::-1]
'FEDCBA'

>>> letters
'ABCDEF'
2 là dành cho bạn

Loại bỏ các quảng cáo

Phần kết luận

Đảo ngược và làm việc với các chuỗi theo thứ tự đảo ngược có thể là một nhiệm vụ phổ biến trong lập trình. Python cung cấp một bộ công cụ và kỹ thuật có thể giúp bạn thực hiện đảo ngược chuỗi một cách nhanh chóng và hiệu quả. Trong hướng dẫn này, bạn đã tìm hiểu về các công cụ và kỹ thuật đó cũng như cách tận dụng chúng trong các thử thách xử lý chuỗi của bạn

Trong hướng dẫn này, bạn đã học cách

  • Nhanh chóng xây dựng các chuỗi bị đảo ngược thông qua việc cắt
  • Tạo các bản sao đảo ngược của các chuỗi hiện có bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    0 và
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    1
  • Sử dụng phép lặp và đệ quy để tạo các chuỗi đảo ngược bằng tay
  • Lặp lại chuỗi của bạn theo thứ tự ngược lại
  • Sắp xếp các chuỗi của bạn theo thứ tự giảm dần bằng cách sử dụng
    >>> letters = "ABCDEF"
    
    >>> letters[::-1]
    'FEDCBA'
    
    >>> letters
    'ABCDEF'
    
    2

Mặc dù bản thân chủ đề này có thể không có nhiều trường hợp sử dụng thú vị, nhưng việc hiểu cách đảo ngược chuỗi có thể hữu ích trong các cuộc phỏng vấn mã hóa cho các vị trí cấp đầu vào. Bạn cũng sẽ thấy rằng việc nắm vững các cách khác nhau để đảo ngược chuỗi có thể giúp bạn thực sự khái niệm hóa tính bất biến của chuỗi trong Python, đây là một tính năng đáng chú ý của ngôn ngữ này

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bartosz

Sadie

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề