Python

Sådan bruges maketrans i Python 3

Sådan bruges maketrans i Python 3
Det maketrans () -funktion er en indbygget oversættelsesmetode i Python, der bruges til at oprette konverteringstabeller for tegnkopiering. Et tegn oversættes til et andet tegn via denne metode. Denne funktion kan anvendes på streng- og ordbogsdata til korttegn. Unicode-repræsentation af tegnet bruges i oversættelsestabellen. Det Oversætte() funktion bruges til at konvertere dataene i oversættelsestabellen til strengdataene. Denne vejledning forklarer, hvordan maketrans () metoden kan bruges i Python til tegntilknytning.

Syntaks

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

Det maketrans () funktion gælder for indholdet af snor værdi. Denne funktion er i stand til at tage tre argumenter. Det første argument er obligatorisk, og de to andre argumenter er valgfri. Når der kun bruges et argument i denne metode, vil argumentet være en ordbog.  Når to argumenter bruges i denne metode, vil begge argumenter være strenge af samme længde. Når der bruges tre argumenter i denne metode, vil det tredje argument være en streng, der fjerner tegn fra strengdataene. Brugen af ​​maketrans () -funktionen i streng- og ordbogsdata vises i de følgende eksempler.

Eksempel 1: Brug af maketrans () til at oversætte nøglen til ordbogen

Det følgende script viser brugen af ​​maketrans () -funktionen til ordbogsdata. Før blev det nævnt, at maketrans () -funktionen kun tager ét argument for ordbogsvariablen. En brugerdefineret funktion, navngivet make_translation (), bruges her til at oprette oversættelsestabellen baseret på den angivne strengværdi via maketrans () fungere. To til sløjfer og to tællere bruges her til at udskrive det korrekte tegn kortlagt af hver ASCII-kode.

#!/ usr / bin / env python3
 
# Definer funktionen til oversættelse af ordbogen til oversættelsestabellen
def make_translation (dictVar, strVar):
# Opret oversættelsestabellen
trans_table = strVar.maketrans (dictVar)
print ("Den oprindelige ordbog er: \ n", dictVar)
print ("Den oversatte tabel med ordbogen er: \ n", trans_table)
udskriv ("\ n")
# Initialiser den første tæller til ordbogen
tæller1 = 1
for nøgle 1 i dictVar:
# Initialiser den anden tæller til oversættelsestabellen
tæller2 = 1
for key2 i trans_table:
hvis tæller1 == tæller2:
print ("% s oversættes til% d"% (key1, key2))
pause
# Forøg anden tæller
counter2 = counter2 + 1
# Forøg første tæller
tæller1 = tæller1 + 1
 
# Definer en ordbog, hvor nøglen er en streng
dictData = "A": 90, "B": 59, "C": 81, "D": 75
# Definer tegnliste, der skal oversættes
string = "ABCD"
# Ring til oversættelsesfunktionen
make_translation (dictData, streng)

Produktion:

Følgende output vises efter kørsel af scriptet. Oversættelsestabellen indeholder ASCII-koden for ordbogens nøgleværdi.

Eksempel 2: Brug af maketrans () til at oversætte strengets tegn

Følgende eksempel viser brugen af maketrans () med strengdata. To strengværdier tages som søgetekst og erstatter tekst, og disse tekstværdier vil blive brugt som argumenter for maketrans () fungere. Du skal huske på, at længden af ​​både input og outputtekst skal være den samme for at oprette oversættelsestabellen. Ellers genereres en fejl. Det Oversætte() funktionen bruges her til at konvertere dataene fra oversættelsestabellen til strengværdier.

#!/ usr / bin / env python3
 
# Indtast den tegnliste, du vil oversætte
search = input ("Indtast listen over søgende tegn \ n")
# Indtast den tegnliste, du vil erstatte
erstatte = input ("Indtast listen med udskiftning af tegn \ n")
 
# Kontroller længden på søgning og udskiftning af tegneliste
hvis len (søg) == len (erstat):
 
# Definer strengdata
original_text = "+8801822594876"
# Opret oversættelsestabellen ved hjælp af maketrans ()
modified_text = original_text.maketrans (søg, erstat)
 
# Udskriv den originale tekst
print ("Den originale tekst er:", original_text)
# Udskriv output efter anvendelse af maketrans ()
print ("Kortlægningstabellen er:", modified_text)
# Udskriv output efter anvendelse af translate ()
print ("Den udskiftede tekst er:", original_text.oversæt (modificeret_tekst))
andet:
print ("Længden på søgeteksten og erstatningsteksten er ikke ens")

Produktion

Efter at have kørt scriptet, 856 tages som søgetegn og 487 tages som erstatningstegn i følgende output. I dette tilfælde erstattes 8 med 4, 5 erstattes af 8, og 6 erstattes af 7 i strengen, '+8801822594878.'Den modificerede output er' +4401422894477.''

Eksempel 3: Brug af maketrans () til at oversætte og slette tegn i strengen

Følgende eksempel viser anvendelsen af ​​tre argumenter med maketrans () -metoden. Her, den snor er hovedstrengen, hvor tegnene i str1 vil blive søgt. Hvis et tegn matcher det valgte tegn, vil dette tegn blive erstattet af det tilsvarende tegn på str2. Hvis nogen karakter af str3 matcher enhver karakter af snor variabel, så vil dette tegn blive fjernet fra snor variabel. Maketrans () -metoden kaldes med to argumenter for én gang, og metoden maketrans () kaldes med tre argumenter for en anden gang.

#!/ usr / bin / env python3
 
# Definer hovedstrengen
string = "Linux"
# Definer tegnlisten, der skal søges
str1 = "iu"
# Definer den tegneliste, der skal erstattes
str2 = "Ui"
# Definer den tegnliste, der skal slettes
str3 = "L"
 
# Udskriv hovedteksten
print ("Den originale tekst:", streng)
 
# Opret oversættelsestabellen
dict1 = streng.maketrans (str1, str2)
udskrive ("\ n Oversættelsestabellen: \ n", dict1)
print ("Den modificerede streng:", streng.oversæt (dict1))
 
# Opret oversættelsestabellen efter sletning af tegn
dict2 = streng.maketrans (str1, str2, str3)
udskriv ("\ n Oversættelsestabellen efter sletning af tegnene: \ n", dict2)
# udskriv den modificerede streng efter translate
print ("\ nDen ændrede streng efter sletning:", streng.oversæt (dict2))

Produktion

Følgende output vises efter kørsel af scriptet. Her er 'i' og 'u' tegn fra 'Linux'erstattes af' U 'og' i 'tegn, når der kaldes maketrans () med to argumenter, og output er'LUnix.'Når metoden maketrans () kaldes med tre argumenter, slettes tegnet' L 'af det tredje argument, og output er'Unix.''

Konklusion

Denne vejledning viser, hvor let du kan erstatte indholdet af ordboks- eller strengdata via maketrans () -metoden. Særlige tegn i en streng kan også slettes ved hjælp af denne metode. Jeg håber, at eksemplerne vist i denne tutorial hjælper Python-brugere med at forstå nogle af anvendelserne af maketrans () -metoden og vil vise, hvordan man anvender denne metode korrekt i deres eget script.

Mus Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Sådan ændres musemarkør og markørstørrelse, farve og skema på Windows 10
Musemarkøren og markøren i Windows 10 er meget vigtige aspekter af operativsystemet. Dette kan også siges om andre operativsystemer, så i sandhed er d...
Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...