Hvordan snu en streng inn Python (5 metoder)

⚡ Smart oppsummering

Revå slette en streng inn Python bruker fem velprøvde teknikker: en for-løkke, en while-løkke, slice-notasjon [::-1], reversed()-funksjonen og rekursjon. Lessons dekker syntaks, kodeeksempler, utdata og ytelsestester.

  • 🔁 For loop: Iterere og sammenkoble tegn.
  • 🔂 Mens loop: Reduser indeksen og legg til tegn.
  • ⚡ Skiver [::-1]: Raskeste metode, ~7 ganger raskere enn å reversere lister.
  • 📦 reversert() + bli med: Minnevennlig iterator for store strenger.
  • 🔄 Rekursjon: Rekurserer på streng[1:] til den er tom.
  • 🤖 AI-omstrukturering: AI konverterer løkker til slicing.

Reverse en streng i Python

En streng er en ordnet liste eller en sekvens av tegn. Strenger er en av datastrukturene som følger med Python. Mens du jobber med strenger i Python, vil du kanskje ha alle tegnene reversert. Et godt eksempel kan være når du bygger et palindromspill.

En omvendt streng har sitt første tegn som siste tegn og så videre. Imidlertid Python kommer ikke med en innebygd funksjon for å snu strenger, men det er metoder du kan bruke.

I denne opplæringen lærer du forskjellige metoder for å snu strengen inn Python.

Metode 1: Reverse streng inn Python ved å bruke en For Loop

Den første metoden for å reversere strenger er å bruke en for-løkke som i kodebiten nedenfor:

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

Utgang:

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

Code Forklaring:

  • I denne kodebiten kan vi bruke reverse_string() funksjon for strengreversering som tar en gitt string som et argument.
  • Inni den kan vi lage en tom streng for å lagre den reverserte strengen, så ser viping gjennom strengen.
  • Karakterene er reversert og tilordnet til reversed_string variabel.
  • Til slutt returnerer den siste linjen i funksjonen den reverserte strengen.
  • For å vise utdata, gjør du et funksjonelt anrop inne i skrive ut() funksjon ved hjelp av en f-streng.

Metode 2: Reverse streng inn Python ved å bruke en While Loop

Ved hjelp av en mens du går inn Python vil også være en annen metode for å snu en streng. La oss forstå kodebiten nedenfor:

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

Utgang:

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

Code Forklaring:

  • I dette Python kode, erklærer vi en streng som skal reverseres, deretter en tom streng for å lagre den reverserte strengen.
  • Vi finner da strenglengden som er tilordnet telle variabel.
  • Ocuco streng[antall – 1] i hver iterasjon henter strengtegnene fra siste til første.
  • Og setter dem sammen til reversed_string og reduserer deretter telle verdi.
  • Til slutt skriver vi ut den omvendte strengen.

Looping fungerer, men Pythons slice-operator er mye mer konsis.

Metode 3: Python Reverse Streng ved bruk av slicer Operator

En annen metode for å snu en streng er å bruke en skiveoperator, for å få hodet rundt det, se koden nedenfor:

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

Utgang:

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

Code Forklaring:

  • Å opprette en omvendt() funksjon som tar en string som et argument, inne i det
  • I dette eksemplet har vi en streng[::-1] skiveoperatør for å reversere string
  • Deretter blir den reverserte strengen tilordnet en ny variabel kalt reversed_string
  • Til slutt returneres den nye reverserte strengen

Metode 4: Revskyte inn en streng Python ved å bruke reversed()-funksjonen

Vi kan også snu en streng ved å bruke en reversert() Python funksjon, vil koden se ut som følger:

Python Code Eksempel:

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

Utgang:

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

Code Forklaring:

  • I denne koden har vi en reversert() funksjon hvis argument er en string.
  • Inni den har vi initialisert en tom streng.
  • Vi setter det sammen med utgangen av reversert (streng) bruker bli med() funksjon.
  • Utenfor reversert() funksjon, har vi erklært at en streng skal reversere, så skriver vi ut den opprinnelige strengen og den reverserte strengen.

Metode 5: Python Reverse Streng ved bruk av rekursjon

Rekursjon betyr en definert funksjon som kaller seg selv. En rekursiv funksjon sies å være rekursiv når den kaller seg selv. For å forstå det bedre, se på følgende kodeeksempel:

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

Utgang:

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

Code Forklaring:

  • I koden ovenfor har vi erklært en omvendt () funksjon som tar en string som et argument er kroppen til funksjonen en hvis ellers uttalelse.
  • Ocuco if setningen sjekker om strenglengden tilsvarer 0 og returnerer strengen, mens ellers uttalelsen kaller omvendt() funksjon rekursivt, kutter den siste indeksen av strengen og legger den til i starten.

Spørsmål og svar

Slicing [::-1] er raskest. Referansetester viser at det er ~7 ganger raskere enn list-reverse og 83 ganger raskere enn rekursjon.

Ja. AI konverterer for-loop-reversering til slicing og forklarer reversed() versus [::-1].

AI-verktøy advarer om at += i en løkke er O(n^2) og anbefaler sammenføyning eller slicing.

En lat iterator, ikke en ny streng. Bruk ”.join(reversed(s)) for å materialisere den reverserte strengen når det er nødvendig.

Sjelden. Rekursjon er elegant, men treg og treffer. Pythonstandard rekursjonsgrense på 1000 bilder på lange strenger. Bruk slicing i ekte kode.

Nei. Strenger er uforanderlige i Python; reversering returnerer en ny streng. Den opprinnelige variabelen beholder samme verdi med mindre den tildeles på nytt.

Bruk split, snu listen, og deretter join: ' '.join(sentence.split()[::-1]). Dette reverserer ordrekkefølgen samtidig som stavemåten bevares.

Ikke alltid. Sammensatte emojier og kombinasjoner av tegn kan splittes. For grafemsikker reversering, bruk regex findall(r'\X', s) før reversering.

Oppsummer dette innlegget med: