Hur man vänder en sträng in Python (5 metoder)

⚡ Smart sammanfattning

Revatt slänga in en sträng Python använder fem beprövade tekniker: en for-loop, en while-loop, slice-notation [::-1], funktionen reversed() och rekursion. Lessons täcker syntax, kodexempel, utdata och prestandamått.

  • 🔁 För loop: Iterera och sammanfoga tecken.
  • 🔂 Medan loop: Minska index och lägg till tecken.
  • Skivning [::-1]: Snabbaste metoden, ~7 gånger snabbare än list reverse.
  • 📦 omvänd() + koppling: Minnesvänlig iterator för stora strängar.
  • 🔄 Rekursion: Rekurserar på sträng[1:] tills den är tom.
  • 🤖 AI-omstrukturering: AI konverterar loopar till slicing.

Reverse en sträng i Python

En sträng är en ordnad lista eller en sekvens av tecken. Strängar är en av de datastrukturer som följer med Python. När du arbetar med strängar i Python, kanske du vill ha alla tecken omvända. Ett bra exempel skulle vara när du bygger ett palindromspel.

En omvänd sträng har sitt första tecken som sista tecken och så vidare. Dock, Python kommer inte med en inbyggd funktion för att vända strängar, men det är metoder du kan använda.

I den här handledningen lär du dig olika metoder för att vända strängen in Python.

Metod 1: Reverse sträng i Python använder en For Loop

Den första metoden för att vända strängar är att använda en for-loop som i kodavsnittet nedan:

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)}")

Produktion:

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

Code Förklaring:

  • I det här kodavsnittet kan vi använda reverse_string() funktion för strängvändning med en given sträng som ett argument.
  • Inuti den kan vi skapa en tom sträng för att lagra den omvända strängen, sedan tittar vi påping genom snöret.
  • Tecknen är omvända och tilldelas till omvänd_sträng variabel.
  • Slutligen returnerar den sista raden i funktionen den omvända strängen.
  • För att visa utdata, gör ett funktionellt samtal inuti skriva ut() funktion med hjälp av en f-sträng.

Metod 2: Reverse sträng i Python använder en While Loop

Med hjälp av en medan loop in Python skulle också vara en annan metod för att vända en sträng. Låt oss förstå kodavsnittet nedan:

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}")

Produktion:

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

Code Förklaring:

  • I detta Python kod, förklarar vi att en sträng ska vändas, sedan en tom sträng för att lagra den omvända strängen.
  • Vi hittar sedan stränglängden som är tilldelad till räkna variabel.
  • Ocuco-landskapet sträng [antal – 1] i varje iteration hämtar strängens tecken från sista till första.
  • Och sammanfogar dem till omvänd_sträng och minskar sedan räkna värde.
  • Slutligen trycker vi den omvända strängen.

Looping fungerar, men Pythons slice-operator är mycket mer koncis.

Metod 3: Python Reverse Sträng med hjälp av utsnitt Operator

En annan metod för att vända en sträng är att använda en segmentoperator, för att få huvudet runt den, se koden nedan:

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)}")

Produktion:

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

Code Förklaring:

  • För att skapa en omvänd() funktion som tar en sträng som ett argument, inuti det
  • I det här exemplet har vi en sträng[::-1] skivoperator för att vända sträng
  • Sedan tilldelas den omvända strängen en ny variabel som kallas omvänd_sträng
  • Slutligen returneras den nya omvända strängen

Metod 4: Revslå in en sträng Python med funktionen reversed()

Vi kan också vända en sträng med a omvänd () Python funktion skulle koden se ut så här:

Python Code Exempel:

# 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)}")

Produktion:

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

Code Förklaring:

  • I den här koden har vi en omvänd () funktion vars argument är a sträng.
  • Inuti den har vi initierat en tom sträng.
  • Vi sammanfogar det med utgången av omvänd (sträng) med Ansluta sig() funktion.
  • Utanför omvänd () funktion, har vi förklarat att en sträng ska vända, sedan skriver vi ut den ursprungliga strängen och den omvända strängen.

Metod 5: Python Reverse Sträng med rekursion

Rekursion betyder en definierad funktion som anropar sig själv. En rekursiv funktion sägs vara rekursiv när den kallar sig själv. För att förstå det bättre titta på följande kodexempel:

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)}")

Produktion:

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

Code Förklaring:

  • I ovanstående kod har vi deklarerat a omvänd () funktion som tar en sträng som ett argument är funktionens kropp en om annat uttalande.
  • Ocuco-landskapet if uttalandet kontrollerar om strängens längd är ekvivalent med 0 och returnerar strängen, medan annars uttalande kallar omvänd() funktion rekursivt, skär upp det sista indexet i strängen och lägger till det i början.

Vanliga frågor

Slicing [::-1] är snabbast. Riktmärken visar att det är ~7 gånger snabbare än list-reverse och 83 gånger snabbare än rekursion.

Ja. AI konverterar for-loop-omvändning till slicing och förklarar reversed() kontra [::-1].

AI-verktyg varnar för att += i en loop är O(n^2) och rekommenderar join eller slicing.

En lat iterator, inte en ny sträng. Använd ”.join(reversed(s)) för att materialisera den omvända strängen vid behov.

Sällan. Rekursion är elegant men långsam och träffar. Pythons standardgräns på 1000 ramar för rekursion på långa strängar. Använd slicing i riktig kod.

Nej. Strängar är oföränderliga i Python; reversering returnerar en ny sträng. Den ursprungliga variabeln behåller samma värde om den inte tilldelas om.

Använd split, vänd listan och använd sedan join: ' '.join(sentence.split()[::-1]). Detta vänder ordordningen samtidigt som stavningen bevaras.

Inte alltid. Sammansatta emojis och kombinerade tecken kan delas. För grafemsäker reversering, använd regex findall(r'\X', s) innan reversering.

Sammanfatta detta inlägg med: