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 olleHValinnainen (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 olleHMenetelmä 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 + revVaihe 3:Käytä tai tulosta tulosta.
print(rev) # dlroW olleHMenetelmä 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 graphemeVaihe 2:Tuo kirjasto.
Lisätietoja:Korjaa näppäimistön kirjoittaminen taaksepäin tai päinvastaisesti Windows 10: ssä
import graphemeVaihe 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ä.













