Python

Maketrans gebruiken in Python 3

Maketrans gebruiken in Python 3
De maketrans() functie is een ingebouwde vertaalmethode in Python die wordt gebruikt om conversietabellen voor karaktertoewijzing te maken. Via deze methode wordt het ene teken in een ander teken vertaald. Deze functie kan worden toegepast op string- en woordenboekgegevens om tekens toe te wijzen. Unicode-weergave van het teken wordt gebruikt in de vertaaltabel. De vertalen() functie wordt gebruikt om de gegevens van de vertaaltabel om te zetten in de tekenreeksgegevens. In deze tutorial wordt uitgelegd hoe de maketrans() methode kan in Python worden gebruikt voor karaktertoewijzing.

Syntaxis

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

De maketrans() functie is van toepassing op de inhoud van de draad waarde. Deze functie kan drie argumenten aannemen:. Het eerste argument is verplicht en de andere twee argumenten zijn optioneel. Als er slechts één argument wordt gebruikt in deze methode, dan zal het argument een woordenboek zijn.  Als er in deze methode twee argumenten worden gebruikt, dan zijn beide argumenten strings van dezelfde lengte. Als er in deze methode drie argumenten worden gebruikt, is het derde argument een tekenreeks die tekens uit de tekenreeksgegevens verwijdert. Het gebruik van de functie maketrans() in string- en woordenboekgegevens wordt getoond in de volgende voorbeelden:.

Voorbeeld 1: Maketrans() gebruiken om de sleutel van het woordenboek te vertalen

Het volgende script toont het gebruik van de functie maketrans() voor woordenboekgegevens. Eerder werd vermeld dat de functie maketrans() slechts één argument nodig heeft voor de woordenboekvariabele. Een aangepaste functie, genaamd make_translation(), wordt hier gebruikt om de vertaaltabel te maken op basis van de opgegeven tekenreekswaarde via de maketrans() functie. Twee voor lussen en twee tellers worden hier gebruikt om het juiste teken af ​​te drukken dat door elke ASCII-code is toegewezen.

#!/usr/bin/env python3
 
# Definieer de functie om het woordenboek naar de vertaaltabel te vertalen
def make_translation(dictVar, strVar):
# Maak de vertaaltabel
trans_table = strVar.maketrans(dictVar)
print("Het originele woordenboek is: \n", dictVar)
print("De vertaalde tabel van het woordenboek is: \n",trans_table)
print("\n")
# Initialiseer de eerste teller voor woordenboek
teller1 = 1
voor key1 in dictVar:
# Initialiseer de tweede teller voor vertaaltabel
teller2 = 1
voor key2 in trans_table:
als teller1 == teller2:
print("%s is vertaald naar %d" %(key1, key2))
breken
# Verhoog de tweede teller
teller2 = teller2 + 1
# Verhoog de eerste teller
teller1 = teller1 + 1
 
# Definieer een woordenboek waarbij sleutel een tekenreeks is
dictData = "A": 90, "B": 59, "C": 81, "D":75
# Definieer karakterlijst om te vertalen
string = "ABCD"
# Roep de vertaalfunctie op
make_translation(dictData,string)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. De vertaaltabel bevat de ASCII-code van de sleutelwaarde van het woordenboek.

Voorbeeld 2: Maketrans() gebruiken om de karakters van de string te vertalen

Het volgende voorbeeld toont het gebruik van maketrans() met stringgegevens. Twee tekenreekswaarden worden gebruikt als zoektekst en vervangtekst, en deze tekstwaarden worden gebruikt als argumenten voor de maketrans() functie. Houd er rekening mee dat de lengte van zowel de invoer- als de uitvoertekst hetzelfde moet zijn om de vertaaltabel te maken. Anders wordt er een fout gegenereerd. De vertalen() functie wordt hier gebruikt om de vertaaltabelgegevens om te zetten in tekenreekswaarden.

#!/usr/bin/env python3
 
# Voer de tekenlijst in die u wilt vertalen
search = input("Vul de lijst met zoektekens in \n")
# Voer de tekenlijst in die u wilt vervangen
vervang = input("Vul de lijst met vervangende tekens in \n")
 
# Controleer de lengte van het zoeken en vervangen van de lijst met tekens
if len(zoeken) == len(vervangen):
 
# Definieer de stringgegevens
original_text = "+8801822594876"
# Maak de vertaaltabel met maketrans()
gewijzigde_tekst = originele_tekst.maketrans (zoeken, vervangen)
 
# Print de originele tekst
print("De originele tekst is: ", originele_tekst)
# Print de uitvoer na het toepassen van maketrans()
print("De uitvoer van de toewijzingstabel is: ", modified_text)
# Druk de uitvoer af na het toepassen van translate()
print("De vervangen tekst is: " , original_text.vertalen(modified_text))
anders:
print("De lengte van zoektekst en vervangtekst zijn niet gelijk")

Uitgang:

Na het uitvoeren van het script, 856 wordt gebruikt als zoektekens en 487 wordt genomen als vervangende tekens in de volgende uitvoer. In dit geval wordt 8 vervangen door 4, 5 wordt vervangen door 8 en 6 wordt vervangen door 7 in de tekenreeks, '+8801822594878.' De gewijzigde uitvoer is '+4401422894477'.'

Voorbeeld 3: Maketrans() gebruiken om tekens in de tekenreeks te vertalen en te verwijderen

Het volgende voorbeeld toont het gebruik van drie argumenten met de methode maketrans(). Hier de draad is de hoofdstring, waarbij de karakters van str1 zal worden doorzocht. Als een teken overeenkomt met het gekozen teken, wordt dat teken vervangen door het corresponderende teken van str2. Als een karakter van str3 komt overeen met elk karakter van de draad variabele, dan wordt dat teken verwijderd uit de draad variabele. De methode maketrans() wordt aangeroepen met twee argumenten voor een keer en de methode maketrans() wordt aangeroepen met drie argumenten voor een andere keer.

#!/usr/bin/env python3
 
# Definieer de hoofdreeks
string = "Linux"
# Definieer de karakterlijst om te zoeken
str1 = "iu"
# Definieer de te vervangen karakterlijst
str2 = "Ui"
# Definieer de karakterlijst om te verwijderen
str3 = "L"
 
# Druk de hoofdtekst af
print("De originele tekst: ",string)
 
# Maak de vertaaltabel
dict1 = tekenreeks.maketrans(str1, str2)
print("\nDe vertaaltabel: \n" ,dict1)
print("De gewijzigde string: " ,string.vertalen(dict1))
 
# Maak de vertaaltabel na het verwijderen van tekens
dict2 = tekenreeks.maketrans(str1, str2, str3)
print("\nDe vertaaltabel na het verwijderen van de karakters: \n", dict2)
# print de gewijzigde string na het vertalen
print("\nDe gewijzigde tekenreeks na verwijderen: ", tekenreeks.vertalen(dict2))

Uitgang:

De volgende uitvoer verschijnt na het uitvoeren van het script:. Hier, 'i' en 'u' karakters van 'Linux' worden vervangen door 'U' en 'i' karakters bij het aanroepen van maketrans() met twee argumenten, en de output is 'LUnik.' Wanneer de methode maketrans() wordt aangeroepen met drie argumenten, wordt het teken 'L' verwijderd door het derde argument en is de uitvoer 'Unix.'

Conclusie

Deze tutorial laat zien hoe gemakkelijk je de inhoud van woordenboek- of stringgegevens kunt vervangen via de maketrans()-methode. Bepaalde tekens binnen een tekenreeks kunnen ook via deze methode worden verwijderd. Ik hoop dat de voorbeelden die in deze tutorial worden getoond Python-gebruikers zullen helpen om enkele van de toepassingen van de maketrans()-methode te begrijpen en zullen laten zien hoe ze deze methode op de juiste manier in hun eigen script kunnen toepassen.

Hoe Xdotool te gebruiken om muisklikken en toetsaanslagen in Linux te stimuleren
Xdotool is een gratis en open source opdrachtregelprogramma voor het simuleren van muisklikken en toetsaanslagen. Dit artikel behandelt een korte hand...
Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...