Pytonorm

Hur man använder maketrans i Python 3

Hur man använder maketrans i Python 3
De maketrans () funktionen är en inbyggd översättningsmetod i Python som används för att skapa konverteringstabeller för karaktärsmappning. En karaktär översätts till en annan karaktär via denna metod. Denna funktion kan användas på sträng- och ordboksdata för att karaktärstecken. Unicode-representation av karaktären används i översättningstabellen. De Översätt() funktionen används för att konvertera data från översättningstabellen till strängdata. Denna handledning kommer att förklara hur maketrans () metoden kan användas i Python för karaktärsmappning.

Syntax

sträng.maketrans (arg1 [, arg2 [, arg3]])

De maketrans () funktionen gäller innehållet i sträng värde. Denna funktion kan ta tre argument. Det första argumentet är obligatoriskt och de andra två argumenten är valfria. När endast ett argument används i den här metoden blir argumentet en ordlista.  När två argument används i den här metoden kommer båda argumenten att vara strängar av samma längd. När tre argument används i den här metoden kommer det tredje argumentet att vara en sträng som tar bort tecken från strängdata. Användningen av maketrans () -funktionen i sträng- och ordboksdata visas i exemplen som följer.

Exempel 1: Använd maketrans () för att översätta ordboken

Följande skript visar användningen av maketrans () -funktionen för ordboksdata. Tidigare nämndes att maketrans () -funktionen bara tar ett argument för ordboksvariabeln. En anpassad funktion, namngiven make_translation (), används här för att skapa översättningstabellen baserat på det angivna strängvärdet via maketrans () fungera. Två för loopar och två räknare används här för att skriva ut rätt tecken som mappats av varje ASCII-kod.

#!/ usr / bin / env python3
 
# Definiera funktionen för att översätta ordlistan till översättningstabellen
def make_translation (dictVar, strVar):
# Skapa översättningstabellen
trans_table = strVar.maketrans (dictVar)
print ("Den ursprungliga ordboken är: \ n", dictVar)
print ("Den översatta tabellen med ordlistan är: \ n", trans_table)
skriva ut ("\ n")
# Initiera den första räknaren för ordlistan
räknare1 = 1
för nyckel 1 i dictVar:
# Initiera den andra räknaren för översättningstabellen
räknare2 = 1
för key2 i trans_table:
om räknare1 == räknare2:
skriva ut ("% s översätts till% d"% (key1, key2))
ha sönder
# Öka andra räknaren
counter2 = counter2 + 1
# Öka första räknaren
räknare1 = räknare1 + 1
 
# Definiera en ordlista där nyckeln är en sträng
dictData = "A": 90, "B": 59, "C": 81, "D": 75
# Definiera teckenlistan som ska översättas
string = "ABCD"
# Ring upp översättningsfunktionen
make_translation (dictData, string)

Produktion:

Följande utdata visas efter körning av skriptet. Översättningstabellen innehåller ASCII-koden för ordlistans nyckelvärde.

Exempel 2: Använd maketrans () för att översätta strängens tecken

Följande exempel visar användningen av maketrans () med strängdata. Två strängvärden tas som söketekst och ersätter text, och dessa textvärden kommer att användas som argument för maketrans () fungera. Du bör komma ihåg att längden på både ingången och utgångstexten måste vara densamma för att skapa översättningstabellen. Annars genereras ett fel. De Översätt() funktionen används här för att konvertera data från översättningstabellen till strängvärden.

#!/ usr / bin / env python3
 
# Ange teckenlistan som du vill översätta
search = input ("Ange listan med söktecken \ n")
# Ange teckenlistan som du vill ersätta
ersätt = ingång ("Ange listan som ersätter tecken \ n")
 
# Kontrollera längden på sökningen och byt ut teckenlistan
om len (sök) == len (ersätt):
 
# Definiera strängdata
original_text = "+8801822594876"
# Skapa tranleringstabellen med maketrans ()
modified_text = original_text.maketrans (sök, ersätt)
 
# Skriv ut originaltexten
tryck ("Originaltexten är:", original_text)
# Skriv ut produktionen efter att ha använt maketrans ()
print ("Mappningstabellens utdata är:", modified_text)
# Skriv ut resultatet efter att du har använt translate ()
print ("Den ersatta texten är:", original_text.översätt (modifierad_text))
annan:
skriv ut ("Söktextens och ersättningstextens längd är inte lika")

Produktion

Efter att ha kört skriptet, 856 tas som söktecken och 487 tas som ersättningstecken i följande utdata. I det här fallet ersätts 8 med 4, 5 ersätts med 8 och 6 ersätts med 7 i strängen, '+8801822594878.'Den modifierade utgången är' +4401422894477.''

Exempel 3: Använd maketrans () för att översätta och ta bort tecken i strängen

Följande exempel visar användningen av tre argument med metoden maketrans (). Här, den sträng är huvudsträngen, där karaktärerna i str1 kommer att sökas. Om någon karaktär matchar den valda karaktären ersätts den karaktären med motsvarande karaktär str2. Om någon karaktär av str3 matchar alla tecken i sträng variabeln, kommer det tecknet att tas bort från sträng variabel. Metoden maketrans () anropas med två argument för en gång och metoden maketrans () kallas med tre argument för en annan gång.

#!/ usr / bin / env python3
 
# Definiera huvudsträngen
string = "Linux"
# Definiera teckenlistan som du vill söka efter
str1 = "iu"
# Definiera teckenlistan som ska ersättas
str2 = "Ui"
# Definiera teckenlistan som ska raderas
str3 = "L"
 
# Skriv ut huvudtexten
tryck ("Originaltexten:", sträng)
 
# Skapa översättningstabellen
dict1 = sträng.maketrans (str1, str2)
skriv ut ("\ nTabellen för översättning: \ n", dict1)
print ("The modified string:", string.översätt (dict1)
 
# Skapa översättningstabellen efter att du har tagit bort tecken
dict2 = sträng.maketrans (str1, str2, str3)
skriv ut ("\ n Översättningstabellen efter att du har tagit bort tecknen: \ n", dict2)
# skriv ut den modifierade strängen efter översättningen
print ("\ nDen modifierade strängen efter radering:", sträng.översätt (dict2))

Produktion

Följande utdata visas efter körning av skriptet. Här, 'i' och 'u' karaktärer av 'Linux'ersätts med' U 'och' i 'tecken när man anropar maketrans () med två argument, och utdata är'LUnix.'När metoden maketrans () anropas med tre argument, raderas tecknet' L 'av det tredje argumentet och utdata är'Unix.''

Slutsats

Denna handledning visar hur enkelt du kan ersätta innehållet i ordlista eller strängdata via metoden maketrans (). Särskilda tecken i en sträng kan också raderas med den här metoden. Jag hoppas att exemplen som visas i den här handledningen hjälper Python-användare att förstå några av användningarna av maketrans () -metoden och kommer att visa hur man använder denna metod ordentligt i sitt eget skript.

Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...
Hur man visar FPS-räknare i Linux-spel
Linux-spel fick ett stort tryck när Valve tillkännagav Linux-stöd för Steam-klient och deras spel 2012. Sedan dess har många AAA- och indiespel tagit ...
Hur man laddar ner och spelar Sid Meier's Civilization VI på Linux
Introduktion till spelet Civilization 6 är ett modernt intag av det klassiska konceptet som introducerades i serien Age of Empires-spel. Idén var gans...