Python String maketrans ()

Strengen maketrans () -metoden returnerer en kortlægningstabel til oversættelse, der kan bruges til translate () -metoden.

Enkelt sagt er maketrans()metode en statisk metode, der skaber en en til en kortlægning af et tegn til dets oversættelse / udskiftning.

Det skaber en Unicode-repræsentation af hvert tegn til oversættelse.

Denne oversættelseskortlægning bruges derefter til at erstatte et tegn til dets kortlagte karakter, når det bruges i translate () -metoden.

Syntaksen for maketrans()metoden er:

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

Her er y og z valgfri argumenter.

String maketrans () Parametre

maketrans() metoden tager 3 parametre:

  • x - Hvis der kun leveres et argument, skal det være en ordbog.
    Ordbogen skal indeholde en 1 til 1 kortlægning fra en enkelt tegnstreng til dens oversættelse ELLER et Unicode-nummer (97 for 'a') til dets oversættelse.
  • y - Hvis der gives to argumenter, skal det være to strenge med samme længde.
    Hvert tegn i den første streng er en erstatning for det tilsvarende indeks i den anden streng.
  • z - Hvis der sendes tre argumenter, kortlægges hvert tegn i det tredje argument til Ingen.

Returneringsværdi fra streng maketrans ()

Den maketrans()metode returnerer en oversættelse tabel med en 1-til-1 kortlægning af en Unicode ordenstal dets oversættelse / udskiftning.

Eksempel 1: Oversættelsestabel ved hjælp af en ordbog 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))

Produktion

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

Her defineres en ordboksdikt. Den indeholder en kortlægning af tegn a, b og c til henholdsvis 123, 456 og 789.

maketrans() opretter en kortlægning af karakterens Unicode ordinal til dens tilsvarende oversættelse.

Så 97 ('a') kortlægges til '123', 98 'b' til 456 og 99 'c' til 789. Dette kan demonstreres ud fra begge ordbøger.

Hvis to eller flere tegn er kortlagt i ordbogen, giver det også en undtagelse.

Eksempel 2: Oversættelsestabel ved hjælp af to strenge 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))

Produktion

 (97: 100, 98: 101, 99: 102) ValueError: de to første maketrans argumenter skal have samme længde 

Her først, to strenge af samme længde abcog defdefineres. Og den tilsvarende oversættelse oprettes.

Udskrivning af kun den første oversættelse giver dig en 1-til-1-kortlægning til hvert tegns Unicode-ordinal i firstString til det samme indekserede tegn på secondString.

I dette tilfælde kortlægges 97 ('a') til 100 ('d'), 98 ('b') til 101 ('e') og 99 ('c') til 102 ('f').

Forsøg på at oprette en oversættelsestabel for strenge med ulige længde rejser en ValueErrorundtagelse, der angiver, at strengene skal have samme længde.

Eksempel 3: Oversættelsestabel med aftagelig streng med maketrans ()

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

Produktion

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

Her oprettes først kortlægningen mellem de to strenge firstString og secondString.

Derefter nulstiller det tredje argument tredjeString kortlægningen af ​​hvert tegn i det Noneog opretter også en ny kortlægning for ikke-eksisterende tegn.

I dette tilfælde nulstiller thirdString kortlægningen af ​​97 ('a') og 98 ('b') til None, og opretter også en ny kortlægning til 100 ('d') tilknyttet None.

Interessante artikler...