Cum să inversați un String în Python (5 metode)

⚡ Rezumat inteligent

Revintroducerea unui șir de caractere Python folosește cinci tehnici dovedite: o buclă for, o buclă while, notația slice [::-1], funcția reversed() și recursivitatea. Lessacoperă sintaxa, exemple de cod, rezultatele și testele de performanță.

  • 🔁 Pentru buclă: Iterația și concatenarea caracterelor.
  • 🔂 Buclă While: Decrementează indexul și adaugă caractere.
  • ⚡ Secționare [::-1]: Cea mai rapidă metodă, ~7x mai rapidă decât list reverse.
  • 📦 inversat() + joncțiune: Iterator prietenos cu memoria pentru șiruri mari.
  • 🔄 Recursie: Recursează pe șirul de caractere[1:] până când este gol.
  • 🤖 Refactorizarea AI: AI convertește buclele în feliere.

Reverse un șir de caractere în Python

Un șir este o listă ordonată sau o secvență de caractere. Șirurile de caractere sunt una dintre structurile de date care vine cu Python. Pe măsură ce lucrați cu șiruri în interior Python, poate doriți să aveți toate personajele inversate. Un exemplu bun ar fi atunci când construiți un joc palindrom.

Un șir inversat are primul caracter ca ultimul caracter și așa mai departe. Cu toate acestea, Python nu vine cu o funcție încorporată pentru inversarea șirurilor, dar sunt metode pe care le poți folosi.

În acest tutorial, veți învăța diferite metode de a inversa șirul Python.

Metoda 1: Reverse sfoară în Python folosind o buclă For

Prima metodă pentru inversarea șirurilor este utilizarea unei bucle for, ca în fragmentul de cod de mai jos:

Python Code:

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

ieșire:

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

Code Explicaţie:

  • În acest fragment de cod, putem folosi șir_invers() funcție pentru inversarea șirurilor luând un dat şir ca argument.
  • În interiorul său, putem crea un șir gol pentru a stoca șirul inversat, apoi vom căutaping prin șir.
  • Caracterele sunt inversate și atribuite șir_inversat variabilă.
  • În cele din urmă, ultima linie din funcție returnează șirul inversat.
  • Pentru a afișa rezultatul, efectuați un apel funcțional în interiorul imprimare() funcţionează cu ajutorul unui şir f.

Metoda 2: Reverse sfoară în Python folosind o buclă While

Folosind un while loop in Python ar fi, de asemenea, o altă metodă de inversare a unui șir. Să înțelegem fragmentul de cod de mai jos:

Python Code:

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

ieșire:

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

Code Explicaţie:

  • În acest Python cod, declarăm un șir care urmează să fie inversat, apoi un șir gol pentru a stoca șirul inversat.
  • Găsim apoi lungimea șirului care este atribuită lui conta variabilă.
  • șir[număr – 1] în fiecare iterație preia șirul de caractere de la ultimul la primul.
  • Și le concatenă la șir_inversat iar apoi decrementează conta valoare.
  • În cele din urmă, imprimăm șirul inversat.

Looping funcționează, dar PythonOperatorul slice al lui este mult mai concis.

Metoda 3: Python Reverse Șir de caractere folosind Slicer OperaTdR

O altă metodă de inversare a unui șir este folosirea unui operator de felie, pentru a vă învăța, vedeți codul de mai jos:

Python Code:

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

ieșire:

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

Code Explicaţie:

  • Pentru a crea un verso() functie care ia a şir ca argument, în interiorul lui
  • În acest exemplu, avem un șir[::-1] operator de felie pentru inversarea şir
  • Apoi șirul inversat este atribuit unei noi variabile numite șir_inversat
  • În cele din urmă, este returnat noul șir inversat

Metoda 4: Revinserând un String în Python folosind funcția inversă ().

De asemenea, putem inversa un șir folosind a inversat() Python funcție, codul ar arăta după cum urmează:

Python Code Exemplu:

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

ieșire:

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

Code Explicaţie:

  • În acest cod, avem un inversat() funcţie al cărei argument este a şir.
  • În interiorul acestuia, am inițializat un șir gol.
  • Îl concatenăm cu rezultatul lui inversat(șir) folosind a te alatura() Funcția.
  • In afara inversat() funcția, am declarat un șir de inversat, apoi tipărim șirul original și șirul inversat.

Metoda 5: Python Reverse Șir de caractere folosind recursivitatea

Recursiune înseamnă o funcție definită care se autoapelează. Se spune că o funcție recursivă este recursivă atunci când se autoinvocă. Pentru a înțelege mai bine, uitați-vă la următorul exemplu de cod:

Python Code:

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

ieșire:

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

Code Explicaţie:

  • În codul de mai sus, am declarat a invers () functie care ia a şir ca argument, corpul funcției este an dacă altceva afirmație.
  • if instrucțiunea verifică dacă lungimea șirului este echivalentă cu 0 și returnează șirul, în timp ce altfel declarația numește verso() funcţionează recursiv, feliază ultimul index al şirului şi îl adaugă la început.

Întrebări frecvente

Secționarea [::-1] este cea mai rapidă. Testele de performanță arată că este de ~7 ori mai rapidă decât list-reverse și de 83 de ori mai rapidă decât recursivitatea.

Da. AI convertește inversarea buclei for în feliere și explică reversed() versus [::-1].

Instrumentele de inteligență artificială avertizează că += într-o buclă este O(n^2) și recomandă unirea sau segmentarea.

Un iterator leneș, nu un șir nou. Folosește ”.join(reversed(s)) pentru a materializa șirul inversat atunci când este nevoie.

Rar. Recursivitatea este elegantă, dar lentă și dă lovitura. PythonLimita implicită de recurență de 1000 de cadre pentru șiruri lungi. Folosește felierea în codul real.

Nu. Șirurile de caractere sunt imuabile în Python; inversarea returnează un nou șir de caractere. Variabila originală păstrează aceeași valoare, cu excepția cazului în care este reatribuită.

Folosește split, inversează lista, apoi unește: ' '.join(sentence.split()[::-1]). Aceasta inversează ordinea cuvintelor, păstrând în același timp ortografia.

Nu întotdeauna. Emoji-urile compuse și caracterele combinate se pot separa. Pentru o inversare sigură pentru grafeme, folosiți expresia regex findall(r'\X', s) înainte de inversare.

Rezumați această postare cu: