Kuinka kääntää merkkijono pythonissa

Python -jouset ovat muuttumattomia sekvenssejä, joten suorin lähestymistapa on luoda käänteinen kopio. Slice -syntaksi lukee mikä tahansa sekvenssi oikealta vasemmalle, kun käytät negatiivista vaihetta, ja se on nopein tapa kääntää merkkijono tyypillisissä tapauksissa. Käyttäjä-näkyvää tekstiä, jossa on hymiöitä, lippuja ja yhdistettyjä merkkejä, käänteiset grafeemiklusterit RAW-koodipisteiden sijasta, jotta vältetään symbolit.

Menetelmä 1 - Käännä viipalointia (idiomaattinen ja nopea)

Tämä käyttää vakioleikkausta[start:stop:step], missä askel-1Kävelee narua lopusta alkuun. Katso Pythonin sekvenssi, joka viipaloi jousien ja sekvenssien asiakirjoihin.

Vaihe 1:Määritä syöttömerkkijono.

text = "Hello World"

Vaihe 2:Luo käänteinen merkkijono käänteisviipaleella.

rev = text[::-1]

Vaihe 3:Käytä tai tulosta tulosta.

print(rev)  # dlroW olleH

Valinnainen (monet lyhyet jouset):Aseta käänteinen viipale kerran ja käytä sitä uudelleen.

Vaihe 1:Luo uudelleenkäytettävä käänteisliikenteen objekti.

R = slice(None, None, -1)

Vaihe 2:Levitä se jousiin toistuvasti.

for s in ["abc", "racecar", "python"]:
    print(s[R])

Menetelmä 2 - Käytäreversed()kanssajoin()(Luettava ja joustava)

Sisäänrakennettu iteraattorireversed()Palauttaa merkit käänteisessä järjestyksessä, johon voit liittyä uuteen merkkijonoon. Katso käänteisen () viralliset asiakirjat.

Vaihe 1:Hanki käänteinen iteraattori merkkijonon päälle.

it = reversed("Hello World")

Vaihe 2:Liity merkit merkkijonoon.

rev = "".join(it)
print(rev)  # dlroW olleH

Menetelmä 3 - Käännä silmukan kanssa (selkeä, helpoin jäljittää)

Tämä osoittaa mekaniikan, mutta on hitaampaa, koska jouset ovat muuttumattomia (jokainen ketjutus luo uuden merkkijonon).

Vaihe 1:Alusta akku.

rev = ""

Vaihe 2:Valmista jokainen merkki rakentaaksesi käänteisen.

for ch in "Hello World":
    rev = ch + rev

Vaihe 3:Käytä tai tulosta tulosta.

print(rev)  # dlroW olleH

Menetelmä 4-Käänteiset grafemiklusterit oikealle hymiölle ja aksentteille (Unicode-Safe)

Jotkut näkyvät ”merkit” ovat grafeemiklustereita, jotka on valmistettu useista koodipisteistä (esimerkiksi liput, ihon sävyjen muokkaimet ja aksenttien yhdistäminen). RAW -koodipisteiden kääntäminen voi muuttaa merkitystä, kuten Ison -Britannian lipun muuttaminen BG: ksi. Unicode -grafeemiklusterin rajat määritetään UAX #29.

Vaihe 1:Asenna kirjasto, joka voi toistaa grafeemiklusterit.

pip install grapheme

Vaihe 2:Tuo kirjasto.

Lisätietoja:Korjaa näppäimistön kirjoittaminen taaksepäin tai päinvastaisesti Windows 10: ssä

import grapheme

Vaihe 3:Jaa merkkijono grafeemiklustereiksi.

clusters = list(grapheme.graphemes("👈🏾👆 🇬🇧 test"))

Vaihe 4:Käännä klusterit ja liity heihin takaisin merkkijonoon.

rev = "".join(clusters[::-1])
print(rev)

Kärki:Vertaa tuloksia nähdäksesi miksi tällä on merkitystä.

# Code point reversal (may be wrong for some emoji):
print("🇬🇧"[::-1])  # Often shows 🇧🇬

# Grapheme-aware reversal (preserves graphemes as units):
import grapheme
print("".join(list(grapheme.graphemes("🇬🇧"))[::-1]))  # Stays 🇬🇧

Milloin kutakin menetelmää käytetään

  • Käytä viipalointia useimpiin jousiin; Se on idiomaattinen ja nopea.
  • Käyttääreversed()Taijoin()Jos haluat iteraattoreita tai sinun on kytkettävä sovellusliittymiin, jotka odottavat iterablia.
  • Käytä Grapheme-tietoista kääntymistä käyttäjälle suunnattuun tekstiin, joka sisältää hymiöitä, lippuja, ihoääniä tai yhdistämällä merkkejä.

Valitse viipalointi suorituskyvyn ja yksinkertaisuuden suhteen ja siirry grafeMe-tietoiseen kääntymiseen, kun hymiöiden ja aksenttien oikeellisuus on tärkeä.

Related Posts