Python String maketrans ()

De string maketrans () - methode retourneert een mapping-tabel voor vertaling die bruikbaar is voor de translate () - methode.

In eenvoudige bewoordingen is de maketrans()methode een statische methode die een een-op-een toewijzing van een teken aan zijn vertaling / vervanging creëert.

Het creëert een Unicode-weergave van elk teken voor vertaling.

Deze vertalingstoewijzing wordt vervolgens gebruikt voor het vervangen van een teken door het toegewezen teken bij gebruik in de methode translate ().

De syntaxis van maketrans()methode is:

 string.maketrans (x (, y (, z)))

Hier zijn y en z optionele argumenten.

String maketrans () Parameters

maketrans() methode heeft 3 parameters nodig:

  • x - Als er maar één argument wordt opgegeven, moet dit een woordenboek zijn.
    Het woordenboek moet een 1-op-1-toewijzing bevatten van een enkele tekenreeks naar de vertaling ervan OF een Unicode-nummer (97 voor 'a') naar de vertaling.
  • y - Als twee argumenten worden doorgegeven, moeten het twee strings zijn van gelijke lengte.
    Elk teken in de eerste string is een vervanging van de bijbehorende index in de tweede string.
  • z - Als er drie argumenten worden doorgegeven, wordt elk teken in het derde argument toegewezen aan Geen.

Retourwaarde van String maketrans ()

De maketrans()methode retourneert een vertaaltabel met een 1-op-1 toewijzing van een Unicode-rangtelwoord aan zijn vertaling / vervanging.

Voorbeeld 1: vertaaltabel met behulp van een woordenboek met maketrans ()

 # example dictionary dict = ("a": "123", "b": "456", "c": "789") string = "abc" print(string.maketrans(dict)) # example dictionary dict = (97: "123", 98: "456", 99: "789") string = "abc" print(string.maketrans(dict))

Uitvoer

 (97: '123', 98: '456', 99: '789') (97: '123', 98: '456', 99: '789') 

Hier wordt een woordenboek gedicteerd. Het bevat een afbeelding van de tekens a, b en c naar respectievelijk 123, 456 en 789.

maketrans() maakt een afbeelding van de Unicode-rangschikking van het personage aan de bijbehorende vertaling.

Dus 97 ('a') wordt toegewezen aan '123', 98 'b' aan 456 en 99 'c' aan 789. Dit kan worden aangetoond aan de hand van de uitvoer van beide woordenboeken.

Als er twee of meer tekens in het woordenboek zijn toegewezen, wordt er ook een uitzondering gegenereerd.

Voorbeeld 2: vertaaltabel met twee strings met maketrans ()

 # first string firstString = "abc" secondString = "def" string = "abc" print(string.maketrans(firstString, secondString)) # example dictionary firstString = "abc" secondString = "defghi" string = "abc" print(string.maketrans(firstString, secondString))

Uitvoer

 (97: 100, 98: 101, 99: 102) ValueError: de eerste twee maketrans-argumenten moeten even lang zijn 

Hier eerste twee snaren van gelijke lengte abcen defzijn gedefinieerd. En de bijbehorende vertaling wordt gemaakt.

Als u alleen de eerste vertaling afdrukt, krijgt u een 1-op-1 toewijzing aan de Unicode-rangorde van elk teken in firstString naar hetzelfde geïndexeerde teken op secondString.

In dit geval wordt 97 ('a') toegewezen aan 100 ('d'), 98 ('b') aan 101 ('e') en 99 ('c') aan 102 ('f').

Als u probeert een vertaaltabel te maken voor tekenreeksen van ongelijke lengte, ontstaat er een ValueErroruitzondering die aangeeft dat de strings even lang moeten zijn.

Voorbeeld 3: Translationele tabel met verwijderbare string met maketrans ()

 # first string firstString = "abc" secondString = "def" thirdString = "abd" string = "abc" print(string.maketrans(firstString, secondString, thirdString))

Uitvoer

 (97: geen, 98: geen, 99: 102, 100: geen) 

Hier wordt eerst de toewijzing tussen de twee strings firstString en secondString gemaakt.

Vervolgens stelt het derde argument thirdString de afbeelding van elk teken erin terug Noneen maakt ook een nieuwe afbeelding voor niet-bestaande tekens.

In dit geval stelt thirdString de toewijzing van 97 ('a') en 98 ('b') opnieuw in Noneen maakt ook een nieuwe toewijzing voor 100 ('d') toegewezen aan None.

Interessante artikelen...