Python

Hvordan bruke maketrans i Python 3

Hvordan bruke maketrans i Python 3
De maketrans () funksjon er en innebygd oversettelsesmetode i Python som brukes til å lage konverteringstabeller for tegnkartlegging. Ett tegn blir oversatt til et annet tegn via denne metoden. Denne funksjonen kan brukes på streng- og ordboksdata på karttegn. Unicode-representasjon av tegnet brukes i oversettelsestabellen. De oversette() funksjonen brukes til å konvertere dataene i oversettelsestabellen til strengdataene. Denne opplæringen vil forklare hvordan maketrans () metoden kan brukes i Python for tegnkartlegging.

Syntaks

streng.maketrans (arg1 [, arg2 [, arg3]])

De maketrans () funksjonen gjelder innholdet i streng verdi. Denne funksjonen er i stand til å ta tre argumenter. Det første argumentet er obligatorisk og de to andre argumentene er valgfrie. Når bare ett argument brukes i denne metoden, vil argumentet være en ordbok.  Når to argumenter brukes i denne metoden, vil begge argumentene være strenger av samme lengde. Når tre argumenter brukes i denne metoden, vil det tredje argumentet være en streng som fjerner tegn fra strengdataene. Bruken av maketrans () -funksjonen i streng- og ordbokdata vises i eksemplene som følger.

Eksempel 1: Bruk maketrans () til å oversette nøkkelen til ordboken

Følgende skript viser bruken av maketrans () -funksjonen for ordboksdata. Før ble det nevnt at funksjonen maketrans () bare tar ett argument for ordbokvariabelen. En tilpasset funksjon, kalt make_translation (), brukes her til å lage oversettelsestabellen basert på den oppgitte strengverdien via maketrans () funksjon. To til sløyfer og to tellere brukes her til å skrive ut riktig tegn kartlagt av hver ASCII-kode.

#!/ usr / bin / env python3
 
# Definer funksjonen for å oversette ordboken til oversettelsestabellen
def make_translation (dictVar, strVar):
# Lag oversettelsestabellen
trans_table = strVar.maketrans (dictVar)
print ("Den opprinnelige ordboken er: \ n", dictVar)
print ("Den oversatte tabellen med ordboken er: \ n", trans_table)
skriv ut ("\ n")
# Initier den første telleren for ordbok
teller1 = 1
for nøkkel1 i dictVar:
# Initier den andre telleren for oversettelsestabell
teller2 = 1
for key2 i trans_table:
hvis teller1 == teller2:
skriv ut ("% s er oversatt til% d"% (key1, key2))
gå i stykker
# Øk andre teller
counter2 = counter2 + 1
# Øk første teller
teller1 = teller1 + 1
 
# Definer en ordbok der nøkkelen er en streng
dictData = "A": 90, "B": 59, "C": 81, "D": 75
# Definer tegnliste du vil oversette
string = "ABCD"
# Ring oversettelsesfunksjonen
make_translation (dictData, string)

Produksjon:

Følgende utdata vises etter kjøring av skriptet. Oversettelsestabellen inneholder ASCII-koden til nøkkelverdien til ordboken.

Eksempel 2: Bruk maketrans () til å oversette tegnene i strengen

Følgende eksempel viser bruken av maketrans () med strengdata. To strengverdier blir tatt som søketekst og erstatter tekst, og disse tekstverdiene vil bli brukt som argumenter for maketrans () funksjon. Du må huske på at lengden på både inngangen og utdatateksten må være den samme for å opprette oversettelsestabellen. Ellers vil det oppstå en feil. De oversette() funksjonen brukes her til å konvertere dataene fra oversettelsestabellen til strengverdier.

#!/ usr / bin / env python3
 
# Skriv inn tegnlisten du vil oversette
search = input ("Skriv inn listen over søketegn \ n")
# Skriv inn tegnlisten du vil erstatte
erstatte = inngang ("Skriv inn listen som erstatter tegn \ n")
 
# Sjekk lengden på søk og erstatning av tegnliste
hvis len (søk) == len (erstatt):
 
# Definer strengdataene
original_text = "+8801822594876"
# Opprett oversettelsestabellen ved hjelp av maketrans ()
modified_text = original_text.maketrans (søk, erstatt)
 
# Skriv ut originalteksten
print ("Originalteksten er:", original_text)
# Skriv ut utdata etter påføring av maketrans ()
print ("Karttabellutgangen er:", modified_text)
# Skriv ut resultatet etter å ha brukt translate ()
print ("Den erstattede teksten er:", original_text.oversette (modifisert_tekst))
ellers:
skriv ut ("Lengden på søketeksten og erstatningsteksten er ikke lik")

Produksjon

Etter å ha kjørt skriptet, 856 blir tatt som søketegn og 487 blir tatt som erstatningstegn i følgende utdata. I dette tilfellet erstattes 8 med 4, 5 erstattes av 8, og 6 erstattes av 7 i strengen, '+8801822594878.'Den modifiserte utgangen er' +4401422894477.'

Eksempel 3: Bruk maketrans () til å oversette og slette tegn i strengen

Følgende eksempel viser bruken av tre argumenter med metoden maketrans (). Her, den streng er hovedstrengen, der tegnene til str1 vil bli søkt. Hvis et tegn samsvarer med det valgte tegnet, vil det tegnet bli erstattet av det tilsvarende tegnet av str2. Hvis noen karakter av str3 samsvarer med hvilken som helst karakter av streng variabelen, så blir det tegnet fjernet fra streng variabel. Maketrans () -metoden kalles med to argumenter for en gang og maketrans () -metoden kalles med tre argumenter for en annen gang.

#!/ usr / bin / env python3
 
# Definer hovedstrengen
string = "Linux"
# Definer tegnlisten du vil søke etter
str1 = "iu"
# Definer tegnlisten som skal erstattes
str2 = "Ui"
# Definer tegnlisten du vil slette
str3 = "L"
 
# Skriv ut hovedteksten
print ("Originalteksten:", streng)
 
# Lag oversettelsestabellen
dict1 = streng.maketrans (str1, str2)
skriv ut ("\ n Oversettelsestabellen: \ n", dict1)
print ("The modified string:", string.oversette (dict1)
 
# Lag oversettelsestabellen etter at du har slettet tegn
dict2 = streng.maketrans (str1, str2, str3)
skriv ut ("\ n Oversettelsestabellen etter å ha slettet tegnene: \ n", dict2)
# skriv ut den modifiserte strengen etter translate
print ("\ nDen modifiserte strengen etter sletting:", streng.oversette (dict2))

Produksjon

Følgende utdata vises etter kjøring av skriptet. Her, 'i' og 'u' tegn til 'Linux'erstattes av' U 'og' i 'tegn når du ringer til maketrans () med to argumenter, og utdataene er'LUnix.'Når maketrans () -metoden kalles med tre argumenter, slettes tegnet' L 'av det tredje argumentet, og utdataene er'Unix.'

Konklusjon

Denne veiledningen viser hvor enkelt du kan erstatte innholdet i ordbok- eller strengdata via maketrans () -metoden. Spesielle tegn i en streng kan også slettes gjennom denne metoden. Jeg håper at eksemplene som vises i denne opplæringen, vil hjelpe Python-brukere til å forstå noen av bruken av maketrans () -metoden, og vil vise hvordan du bruker denne metoden riktig i sitt eget skript.

OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...