Python String maketrans ()

Metoda string maketrans () returnează un tabel de mapare pentru traducere utilizabil pentru metoda translate ().

În termeni simpli, maketrans()metoda este o metodă statică care creează o mapare unu la unu a unui caracter la traducerea / înlocuirea acestuia.

Se creează o reprezentare Unicode a fiecărui caracter pentru traducere.

Această mapare a traducerii este apoi utilizată pentru înlocuirea unui caracter la caracterul său mapat atunci când este utilizată în metoda translate ().

Sintaxa maketrans()metodei este:

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

Aici, y și z sunt argumente opționale.

String maketrans () Parametri

maketrans() metoda are 3 parametri:

  • x - Dacă este furnizat un singur argument, acesta trebuie să fie un dicționar.
    Dicționarul ar trebui să conțină o mapare 1-la-1 de la un șir de caractere unic la traducerea SAU un număr Unicode (97 pentru „a”) la traducerea sa.
  • y - Dacă sunt trecute două argumente, trebuie să fie două șiruri cu lungime egală.
    Fiecare caracter din primul șir înlocuiește indexul corespunzător din al doilea șir.
  • z - Dacă sunt trecute trei argumente, fiecare caracter din cel de-al treilea argument este mapat la None.

Returnează valoarea din String maketrans ()

maketrans()Metoda returneaza un tabel de traducere cu o mapare 1-la-1 a unui ordinal Unicode pentru traducerea / înlocuire.

Exemplul 1: tabel de traducere folosind un dicționar cu 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))

Ieșire

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

Aici, este definit un dicționar dicționar. Conține o mapare a caracterelor a, b și c la 123, 456 și respectiv 789.

maketrans() creează o mapare a ordinalului Unicode al personajului la traducerea sa corespunzătoare.

Deci, 97 („a”) este mapat la „123”, 98 „b” la 456 și 99 „c” la 789. Acest lucru poate fi demonstrat din ieșirea ambelor dicționare.

De asemenea, dacă două sau mai multe caractere sunt mapate în dicționar, aceasta generează o excepție.

Exemplul 2: tabel de traducere folosind două șiruri cu 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))

Ieșire

 (97: 100, 98: 101, 99: 102) ValueError: primele două argumente maketrans trebuie să aibă lungime egală 

Aici în primul rând, două șiruri de lungime egală abcși defsunt definite. Și se creează traducerea corespunzătoare.

Imprimarea numai a primei traduceri vă oferă o mapare 1-la-1 a ordinalului Unicode al fiecărui caracter în firstString către același caracter indexat pe secondString.

În acest caz, 97 („a”) este mapat la 100 („d”), 98 („b”) la 101 („e”) și 99 („c”) la 102 („f”).

Încercarea de a crea un tabel de traducere pentru șiruri de lungime inegală ridică o ValueErrorexcepție care indică faptul că șirurile trebuie să aibă lungime egală.

Exemplul 3: tabel translațional cu șir detașabil cu maketrans ()

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

Ieșire

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

Aici, în primul rând, se creează maparea între cele două șiruri firstString și secondString.

Apoi, al treilea argument thirdString resetează maparea fiecărui caracter din acesta Noneși creează, de asemenea, o nouă mapare pentru caracterele inexistente.

În acest caz, thirdString resetează maparea 97 („a”) și 98 („b”) la Noneși creează, de asemenea, o nouă mapare pentru 100 („d”) mapată la None.

Articole interesante...