Hogyan lehet megfordítani a karakterláncot Python (5 módszer)

⚡ Okos összefoglaló

Revbedug egy húrt Python öt bevált technikát használ: egy for ciklust, egy while ciklust, szeletjelölést [::-1], a reversed() függvényt és a rekurziót. LessA feladatok kiterjednek a szintaxisra, a kódpéldákra, a kimenetre és a teljesítmény-referenciaértékekre.

  • 🔁 Loop számára: Karakterek ismétlése és összefűzése.
  • 🔂 Hurok közben: Index csökkentése és hozzáfűzése karakterek.
  • Szeletelés [::-1]: A leggyorsabb módszer, ~7-szer gyorsabb, mint a lista megfordítása.
  • 📦 fordított() + illesztés: Memóriabarát iterátor nagy karakterláncokhoz.
  • 🔄 Rekurzió: A string[1:] karakterláncon rekurzál, amíg ki nem ürül.
  • 🤖 AI Refaktorálás: A mesterséges intelligencia a ciklusokat szeleteléssé alakítja.

Reverse egy karakterlánc Python

A karakterlánc egy rendezett lista vagy karaktersorozat. A karakterláncok a hozzá tartozó adatszerkezetek egyike Python. Miközben a húrokkal dolgozol Python, érdemes az összes karaktert felcserélni. Jó példa erre, amikor palindrom játékot építesz.

A fordított karakterlánc első karaktere az utolsó karakter, és így tovább. Viszont, Python nem tartalmaz beépített függvényt a karakterláncok megfordításához, de ezek olyan módszerek, amelyeket használhat.

Ebben az oktatóanyagban különböző módszereket tanulhat meg a karakterlánc megfordítására Python.

1 módszer: Reverse karakterlánc be Python For Loop használatával

A karakterláncok megfordításának első módja a for ciklus használata, ahogy az alábbi kódrészletben látható:

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 Magyarázat:

  • Ebben a kódrészletben használhatjuk fordított_karakterlánc() függvény a karakterlánc megfordítására adott adott húr érvként.
  • Belül létrehozhatunk egy üres karakterláncot a megfordított karakterlánc tárolásához, majd a következőt látjuk:ping a húron keresztül.
  • A karakterek felcserélődnek és hozzá vannak rendelve a fordított_karakterlánc változót.
  • Végül a függvény utolsó sora a fordított karakterláncot adja vissza.
  • A kimenet megjelenítéséhez funkcionális hívást hajt végre a készülék belsejében nyomtatás() függvényt egy f karakterlánc segítségével.

2 módszer: Reverse karakterlánc be Python a While Loop használatával

Egy miközben hurok be Python egy másik módszer egy karakterlánc megfordítására. Értsük meg az alábbi kódrészletet:

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 Magyarázat:

  • Ebben Python kódot, megfordítandó karakterláncot deklarálunk, majd egy üres karakterláncot a fordított karakterlánc tárolására.
  • Ezután megtaláljuk a karakterlánc hosszát, amely a számít változót.
  • Az karakterlánc[szám – 1] minden iterációban lekéri a karakterlánc karaktereit az utolsótól az elsőig.
  • És összefűzi őket fordított_karakterlánc majd csökkenti a számít értéket.
  • Végül kinyomtatjuk a fordított karakterláncot.

Vécéping működik, de PythonA `s slice` operátora sokkal tömörebb.

3 módszer: Python Reverse Szöveg szeletelő használatával Operator

Egy másik módszer a karakterlánc megfordítására a slice operátor használata, amely az alábbi kódot segíti.

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 Magyarázat:

  • A fordított () függvény, amely a húr érvként, benne
  • Ebben a példában van egy string[::-1] szelet operátor a megfordításhoz húr
  • Ezután a fordított karakterlánc hozzá van rendelve egy új változóhoz fordított_karakterlánc
  • Végül az új fordított karakterlánc kerül visszaadásra

4 módszer: Revegy String beírása Python a fordított() függvény használatával

A karakterláncot az a segítségével is megfordíthatjuk fordított() Python függvényében a kód a következőképpen nézne ki:

Python Code Példa:

# 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 Magyarázat:

  • Ebben a kódban van egy fordított() függvény, amelynek argumentuma a húr.
  • Benne inicializáltunk egy üres karakterláncot.
  • Összefűzzük a kimenetével fordított (karakterlánc) használatával csatlakozni () funkciót.
  • Kívül fordított() függvény függvényében deklaráltunk egy karakterláncot megfordításra, majd kinyomtatjuk az eredeti és a fordított karakterláncot.

5 módszer: Python Reverse Karakterlánc rekurzió használatával

A rekurzió egy meghatározott függvény önmagát hívja meg. A rekurzív függvényt rekurzívnak nevezzük, ha meghívja magát. A jobb megértéshez nézze meg a következő kódpéldát:

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 Magyarázat:

  • A fenti kódban deklaráltuk a fordítva () függvény, amely a húr argumentumként a függvény törzse egy ha más nyilatkozat.
  • Az if utasítás ellenőrzi, hogy a karakterlánc hossza megegyezik-e 0-val, és visszaadja a karakterláncot, míg a más nyilatkozat hívja a fordított () rekurzív függvényt, feldarabolja a karakterlánc utolsó indexét, és hozzáadja az elejéhez.

GYIK

A [::-1] szeletelés a leggyorsabb. A benchmarkok azt mutatják, hogy ~7-szer gyorsabb, mint a lista-vissza vágás és 83-szor gyorsabb, mint a rekurzió.

Igen. A mesterséges intelligencia a for ciklus megfordítását szeleteléssé alakítja, és elmagyarázza a reversed() és a [::-1] közötti különbséget.

A mesterséges intelligencia eszközei figyelmeztetnek, hogy a += egy ciklusban O(n^2), és az összekapcsolást vagy a szeletelést javasolják.

Egy lusta iterátor, nem egy új sztring. Használd a ".join(reversed(s)) függvényt a fordított sztring materializálásához, amikor szükséges.

Ritkán. A rekurzió elegáns, de lassú és ütős. Pythonalapértelmezett 1000 képkockás rekurziós korlátja hosszú karakterláncokon. Szeletelés használata valódi kódban.

Nem. A karakterláncok megváltoztathatatlanok a következőben: PythonA ; megfordítás egy új karakterláncot ad vissza. Az eredeti változó megtartja ugyanazt az értéket, amíg át nem rendeljük.

Használd a split függvényt, fordítsd meg a listát, majd csatlakozz: ' '.join(sentence.split()[::-1]). Ez megfordítja a szavak sorrendjét, miközben megőrzi a helyesírást.

Nem mindig. Az összetett emojik és a kombinált karakterek szétválhatnak. A graféma-biztos megfordításhoz használd a findall(r'\X', s) regexet a megfordítás előtt.

Foglald össze ezt a bejegyzést a következőképpen: