Hoe je een String omkeert in Python (5 methoden)

โšก Slimme samenvatting

Reveen snaar in Python maakt gebruik van vijf beproefde technieken: een for-lus, een while-lus, slice-notatie [::-1], de functie reversed() en recursie. LessDe documenten behandelen syntax, codevoorbeelden, uitvoer en prestatiebenchmarks.

  • ๐Ÿ” For loop: Herhaal en voeg tekens samen.
  • ๐Ÿ”‚ Herhalingslus: Verlaag de index en voeg tekens toe.
  • โšก Snijden [::-1]: De snelste methode, ongeveer 7 keer sneller dan het omkeren van een lijst.
  • ???? reversed() + join: Geheugenvriendelijke iterator voor grote tekenreeksen.
  • ๐Ÿ”„ Herhaling: Herhaalt de aanroep van string[1:] totdat deze leeg is.
  • ๐Ÿค– AI Refactor: AI zet lussen om in slicing.

Reverse een String in Python

Een string is een geordende lijst of een reeks tekens. Strings zijn een van de datastructuren die daarbij horen Python. Terwijl je met strings werkt Python, wil je misschien alle karakters omdraaien. Een goed voorbeeld is wanneer je een palindroomspel bouwt.

Een omgekeerde string heeft zijn eerste teken als het laatste teken, enzovoort. Echter, Python heeft geen ingebouwde functie voor het omkeren van snaren, maar het zijn methoden die u kunt gebruiken.

In deze tutorial leert u verschillende methoden om de string om te draaien in Python.

Methode 1: Reverse insnoeren Python met behulp van een For-lus

De eerste methode voor het omkeren van tekenreeksen is het gebruik van een for-lus, zoals in het onderstaande codefragment:

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

Output:

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

Code Uitleg:

  • In dit codefragment kunnen we gebruiken omgekeerde_string() functie voor het omkeren van een string waarbij een gegeven wordt aangenomen snaar als argument.
  • Binnenin kunnen we een lege string aanmaken om de omgekeerde string op te slaan, dan zijn we klaar.ping door de snaar.
  • De karakters worden omgedraaid en toegewezen aan de omgekeerde_string variabel.
  • Ten slotte retourneert de laatste regel in de functie de omgekeerde tekenreeks.
  • Om de uitvoer weer te geven, voert u een functionele oproep uit binnen het afdrukken() functioneren met behulp van een f-snaar.

Methode 2: Reverse insnoeren Python met behulp van een While-lus

Met een terwijl je inloopt Python zou ook een andere methode zijn om een โ€‹โ€‹string om te keren. Laten we het onderstaande codefragment begrijpen:

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

Output:

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

Code Uitleg:

  • In deze Python In de code declareren we een string die omgedraaid moet worden en vervolgens een lege string om de omgedraaide string op te slaan.
  • We vinden dan de stringlengte die is toegewezen aan de tellen variabel.
  • De tekenreeks[tel โ€“ 1] haalt bij elke iteratie de tekenreekstekens op, van de laatste tot de eerste.
  • En voegt ze samen omgekeerde_string en verlaagt vervolgens de tellen waarde.
  • Ten slotte drukken we de omgekeerde string af.

Toiletping werkt, maar PythonDe slice-operator van is veel beknopter.

Methode 3: Python Reverse String met behulp van Slicer Operator

Een andere methode om een โ€‹โ€‹string om te draaien is door gebruik te maken van een slice-operator. Bekijk de onderstaande code om dit te begrijpen:

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

Output:

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

Code Uitleg:

  • Het creรซren van een omgekeerde() functie waarvoor a nodig is snaar als argument, erin
  • In dit voorbeeld hebben we een tekenreeks[::-1] slice-operator voor het omkeren van de snaar
  • Vervolgens wordt de omgekeerde string toegewezen aan een nieuwe variabele genaamd omgekeerde_string
  • Ten slotte wordt de nieuwe omgekeerde tekenreeks geretourneerd

Methode 4: Reveen string invoeren Python met behulp van de reversed()-functie

We kunnen een string ook omkeren met behulp van a teruggedraaid() Python functie, zou de code er als volgt uitzien:

Python Code Voorbeeld:

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

Output:

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

Code Uitleg:

  • In deze code hebben we a teruggedraaid() functie waarvan het argument a is snaar.
  • Daarin hebben we een lege string geรฏnitialiseerd.
  • We voegen het samen met de uitvoer van omgekeerd(tekenreeks) met de meedoen () functie.
  • Buiten de teruggedraaid() functie, we hebben aangegeven dat een string omgedraaid moet worden, dan drukken we de originele string en de omgekeerde string af.

Methode 5: Python Reverse String met behulp van recursie

Recursie betekent een gedefinieerde functie die zichzelf aanroept. Een recursieve functie wordt recursief genoemd wanneer deze zichzelf aanroept. Om het beter te begrijpen, bekijk het volgende codevoorbeeld:

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

Output:

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

Code Uitleg:

  • In de bovenstaande code hebben we a achteruit () functie die a nodig heeft snaar als argument is de body van de functie an als anders verklaring.
  • De if statement controleert of de stringlengte gelijk is aan 0 en retourneert de string, terwijl de anders verklaring noemt de omgekeerde() functie recursief, snijdt de laatste index van de string in stukken en voegt deze toe aan het begin.

Veelgestelde vragen

Het slicen van [::-1] is het snelst. Benchmarks tonen aan dat het ongeveer 7 keer sneller is dan het omkeren van een lijst en 83 keer sneller dan recursie.

Ja. AI zet het omkeren van een for-lus om in slicing en legt het verschil uit tussen reversed() en [::-1].

AI-tools waarschuwen dat += in een lus O(n^2) is en raden aan om samen te voegen of te slicen.

Een luie iterator, geen nieuwe string. Gebruik โ€.join(reversed(s)) om de omgekeerde string te genereren wanneer dat nodig is.

Zelden. Recursie is elegant, maar traag en komt vaak voor. PythonDe standaardlimiet van 1000 frames voor recursie bij lange tekenreeksen is . Gebruik slicing in echte code.

Nee. Strings zijn onveranderlijk in PythonBij omkering wordt een nieuwe tekenreeks geretourneerd. De oorspronkelijke variabele behoudt dezelfde waarde, tenzij deze opnieuw wordt toegewezen.

Gebruik split, keer de lijst om en voeg vervolgens samen: ' '.join(sentence.split()[::-1]). Dit keert de woordvolgorde om, terwijl de spelling behouden blijft.

Niet altijd. Samengestelde emoji's en gecombineerde tekens kunnen worden opgesplitst. Gebruik voor grafeemveilige omkering de reguliere expressie findall(r'\X', s) vรณรณr de omkering.

Vat dit bericht samen met: