Python String maketrans ()

Strengen maketrans () -metoden returnerer en kartleggingstabell for oversettelse som kan brukes for translate () -metoden.

Enkelt sagt er maketrans()metode en statisk metode som skaper en til en kartlegging av et tegn til dets oversettelse / erstatning.

Det skaper en Unicode-representasjon av hvert tegn for oversettelse.

Denne oversettelseskartleggingen brukes deretter til å erstatte et tegn til det tilordnede tegnet når det brukes i translate () -metoden.

Syntaksen for maketrans()metoden er:

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

Her er y og z valgfrie argumenter.

String maketrans () Parametere

maketrans() metoden tar 3 parametere:

  • x - Hvis bare ett argument er levert, må det være en ordbok.
    Ordboken skal inneholde en 1-til-1-kartlegging fra en enkelt tegnstreng til oversettelsen ELLER et Unicode-nummer (97 for 'a') til oversettelsen.
  • y - Hvis to argumenter blir bestått, må det være to strenger med samme lengde.
    Hvert tegn i den første strengen er en erstatning for den tilsvarende indeksen i den andre strengen.
  • z - Hvis tre argumenter sendes, blir hvert tegn i det tredje argumentet tilordnet Ingen.

Returverdi fra streng maketrans ()

Den maketrans()metoden returnerer en oversettelsestabell med en en-til-en kartlegging av et Unicode ordinal til sin oversettelse / utskifting.

Eksempel 1: Oversettelsestabell ved bruk av en ordbok med 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))

Produksjon

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

Her defineres en ordbokdikt. Den inneholder en kartlegging av tegn a, b og c til henholdsvis 123, 456 og 789.

maketrans() oppretter en kartlegging av karakterens Unicode ordinal til den tilsvarende oversettelsen.

Så, 97 ('a') er kartlagt til '123', 98 'b' til 456 og 99 'c' til 789. Dette kan demonstreres fra utdataene fra begge ordbøkene.

Hvis to eller flere tegn er kartlagt i ordboken, gir det også et unntak.

Eksempel 2: Oversettelsestabell med to strenger med 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))

Produksjon

 (97: 100, 98: 101, 99: 102) ValueError: de to første maketrans-argumentene må ha samme lengde 

Her først er to strenger av samme lengde abcog defdefinert. Og den tilsvarende oversettelsen er opprettet.

Å skrive ut bare den første oversettelsen gir deg en 1-til-1-tilordning til hvert tegns Unicode-ordinær i firstString til samme indekserte tegn på secondString.

I dette tilfellet er 97 ('a') kartlagt til 100 ('d'), 98 ('b') til 101 ('e') og 99 ('c') til 102 ('f').

Når du prøver å lage en oversettelsestabell for strenger med ulik lengde, oppstår et ValueErrorunntak som indikerer at strengene må ha samme lengde.

Eksempel 3: Oversettelsestabell med flyttbar streng med maketrans ()

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

Produksjon

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

Her opprettes først kartleggingen mellom de to strengene firstString og secondString.

Deretter tilbakestiller det tredje argumentet thirdString kartleggingen av hvert tegn i det Noneog oppretter også en ny kartlegging for ikke-eksisterende tegn.

I dette tilfellet tilbakestiller thirdString kartleggingen av 97 ('a') og 98 ('b') til None, og oppretter også en ny kartlegging for 100 ('d') kartlagt til None.

Interessante artikler...