Kuinka kääntää merkkijono sisään Python (5 menetelmää)

⚡ Älykäs yhteenveto

Revnarun syöttäminen sisään Python käyttää viittä hyväksi havaittua tekniikkaa: for-silmukkaa, while-silmukkaa, viipalemerkintää [::-1], reverse()-funktiota ja rekursiota. Lesskattaa syntaksin, koodiesimerkit, tulosteen ja suorituskyvyn vertailuarvot.

  • 🔁 Silmukalle: Toista ja yhdistä merkkejä.
  • 🔂 Silmukan aikana: Vähennä indeksiä ja lisää merkkejä.
  • Viipalointi [::-1]: Nopein menetelmä, ~7 kertaa nopeampi kuin listan kääntäminen.
  • 📦 käänteinen() + liitos: Muistiystävällinen iteraattori pitkille merkkijonoille.
  • 🔄 Rekursio: Rekursoi merkkijonolla[1:], kunnes se on tyhjä.
  • 🤖 Tekoälyn uudelleenjärjestely: Tekoäly muuntaa silmukat viipaloinniksi.

Reverse merkkijono sisään Python

Merkkijono on järjestetty luettelo tai merkkijono. Merkkijonot ovat yksi mukana tulevista tietorakenteista Python. Kun työskentelet merkkijonojen kanssa Python, haluat ehkä kääntää kaikki merkit päinvastaiseksi. Hyvä esimerkki olisi, kun rakennat palindromipeliä.

Käänteisen merkkijonon ensimmäinen merkki on viimeinen merkki ja niin edelleen. Kuitenkin, Python ei sisällä sisäänrakennettua toimintoa merkkijonojen kääntämiseksi, mutta ne ovat menetelmiä, joita voit käyttää.

Tässä opetusohjelmassa opit erilaisia ​​tapoja kääntää merkkijono Python.

Menetelmä 1: Reverse merkkijono sisään Python käyttämällä For Loopia

Ensimmäinen menetelmä merkkijonojen kääntämiseen on for-silmukan käyttäminen alla olevan koodinpätkän mukaisesti:

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

lähtö:

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

Code Selitys:

  • Tässä koodinpätkässä voimme käyttää käänteinen_merkkijono() funktio merkkijonon käänteestä ottamalla annetun jono argumenttina.
  • Sen sisään voimme luoda tyhjän merkkijonon käänteisen merkkijonon tallentamiseksi, sitten katsommeping narun läpi.
  • Hahmot käännetään päinvastoin ja ne on määritetty käänteinen_merkkijono muuttuja.
  • Lopuksi funktion viimeinen rivi palauttaa käänteisen merkkijonon.
  • Näyttääksesi lähdön, soitat toiminnallisen puhelun sisällä Tulosta() funktio f-merkkijonon avulla.

Menetelmä 2: Reverse merkkijono sisään Python käyttäen While-silmukkaa

Käyttäen samalla silmukka sisään Python olisi myös toinen tapa kääntää merkkijono. Anna meidän ymmärtää alla oleva koodinpätkä:

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

lähtö:

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

Code Selitys:

  • Tässä Python koodi, julistetaan merkkijono käännettäväksi ja sitten tyhjä merkkijono käänteisen merkkijonon tallentamiseksi.
  • Etsimme sitten merkkijonon pituuden, joka on määritetty laskea muuttuja.
  • merkkijono[luku – 1] jokaisessa iteraatiossa hakee merkkijonomerkit viimeisestä ensimmäiseen.
  • Ja ketjuttaa ne yhteen käänteinen_merkkijono ja sitten vähentää laskea arvoa.
  • Lopuksi tulostamme käänteisen merkkijonon.

Vessaping toimii, mutta Pythonn siivuoperaattori on paljon ytimekkäämpi.

Menetelmä 3: Python Reverse Merkkijono siivuttajaa käyttäen OperaTor

Toinen tapa kääntää merkkijono on slice-operaattorin käyttäminen, jotta pääset eroon siitä, katso alla oleva koodi:

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

lähtö:

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

Code Selitys:

  • Luo a käänteinen() toiminto, joka vie a jono argumenttina, sen sisällä
  • Tässä esimerkissä meillä on a merkkijono[::-1] slice-operaattori peruuttaaksesi jono
  • Sitten käänteinen merkkijono osoitetaan uudelle muuttujalle nimeltä käänteinen_merkkijono
  • Lopuksi palautetaan uusi käänteinen merkkijono

Menetelmä 4: Revmerkkijonon syöttäminen Python käyttämällä reverse()-funktiota

Voimme myös kääntää merkkijonon käyttämällä a päinvastainen () Python funktio, koodi näyttäisi seuraavalta:

Python Code Esimerkiksi:

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

lähtö:

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

Code Selitys:

  • Tässä koodissa meillä on a päinvastainen () funktio, jonka argumentti on a jono.
  • Sen sisällä olemme alustaneet tyhjän merkkijonon.
  • Yhdistämme sen tulosteen kanssa käänteinen (merkkijono) käyttäen liittyä seuraan() toiminto.
  • Ulkopuolella päinvastainen () funktio, olemme ilmoittaneet merkkijonon käänteiseksi, sitten tulostamme alkuperäisen merkkijonon ja käänteisen merkkijonon.

Menetelmä 5: Python Reverse Merkkijono rekursiota käyttäen

Rekursio tarkoittaa määriteltyä funktiota, joka kutsuu itseään. Rekursiivisen funktion sanotaan olevan rekursiivinen, kun se kutsuu itseään. Ymmärtääksesi sen paremmin, katso seuraava koodiesimerkki:

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

lähtö:

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

Code Selitys:

  • Yllä olevassa koodissa olemme ilmoittaneet a käänteinen () toiminto, joka vie a jono argumenttina funktion runko on an tai muuten lausuma.
  • if lauseke tarkistaa, onko merkkijonon pituus yhtä suuri kuin 0, ja palauttaa merkkijonon, kun taas muu lausunto kutsuu käänteinen() funktio rekursiivisesti, viipaloi merkkijonon viimeisen indeksin ja lisää sen alkuun.

UKK

Viipalointi [::-1] on nopeinta. Vertailuarvot osoittavat sen olevan ~7 kertaa nopeampi kuin listan käänteinen ja 83 kertaa nopeampi kuin rekursio.

Kyllä. Tekoäly muuntaa for-silmukan kääntökäskyn viipaloimiseksi ja selittää reversed():n ja [::-1:n välillä.

Tekoälytyökalut varoittavat, että += silmukassa on O(n^2) ja suosittelevat liittämistä tai viipalointia.

Laiska iteraattori, ei uusi merkkijono. Käytä ".join(reversed(s))-funktiota käänteisen merkkijonon materialisointiin tarvittaessa.

Harvoin. Rekursio on tyylikäs, mutta hidas ja osuu kohdalleen. Pythonn oletusarvoinen 1000 kehyksen rekursiorajoitus pitkille merkkijonoille. Käytä viipalointia oikeassa koodissa.

Ei. Merkkijonot ovat muuttumattomia Python; peruutus palauttaa uuden merkkijonon. Alkuperäinen muuttuja säilyttää saman arvon, ellei sitä uudelleensijoiteta.

Käytä split-komentoa, käännä lista toisin päin ja liitä sitten: ' '.join(sentence.split()[::-1]). Tämä kääntää sanajärjestyksen säilyttäen oikeinkirjoituksen.

Ei aina. Yhdistelmäemojit ja merkkien yhdistäminen voivat hajota. Käytä grafeemiturvallisen käänteisen käänteisen käänteisen käänteisen käänteisen käänteisen käänteisen käänteisen funktion saamiseksi säännöllistä lauseketta findall(r'\X', s) ennen käänteistä funktiota.

Tiivistä tämä viesti seuraavasti: