Python String maketrani ()

Metoda string maketrans () vrne tabelo preslikave za prevod, uporabno za metodo translate ().

Poenostavljeno povedano, maketrans()metoda je statična metoda, ki ustvari preslikavo znaka ena na ena za njegovo prevajanje / zamenjavo.

Ustvari predstavitev Unicode vsakega znaka za prevajanje.

To preslikavanje prevodov se nato uporabi za zamenjavo znaka na preslikani znak, kadar se uporablja v metodi translate ().

Sintaksa maketrans()metode je:

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

Tu sta y in z neobvezna argumenta.

Parametri niza maketrans ()

maketrans() metoda ima 3 parametre:

  • x - Če je naveden samo en argument, mora biti to slovar.
    Slovar mora vsebovati preslikavo 1 na 1 iz niza enega znaka v njegov prevod ALI številko Unicode (97 za 'a') v njegov prevod.
  • y - Če sta podana dva argumenta, morata biti to dva niza z enako dolžino.
    Vsak znak v prvem nizu je zamenjava ustreznega indeksa v drugem nizu.
  • z - Če so posredovani trije argumenti, se vsak znak v tretjem argumentu preslika v None.

Vrnjena vrednost iz String maketrans ()

maketrans()Metoda vrne prevajalsko tabelo s preslikavo 1-do-1 je Unicode ORDINALkrižišču za prevajalske / zamenjavo.

Primer 1: Prevajalska tabela z uporabo slovarja z maketrani ()

 # 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))

Izhod

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

Tu je definiran slovarski izrek. Vsebuje preslikavo znakov a, b in c na 123, 456 in 789.

maketrans() ustvari preslikavo zaporedja Unicode znaka v njegov ustrezen prevod.

Torej se 97 ('a') preslika na '123', 98 'b' na 456 in 99 'c' na 789. To lahko dokažemo na podlagi rezultatov obeh slovarjev.

Če sta v slovar preslikana dva ali več znakov, se pojavi izjema.

Primer 2: Prevajalska tabela z uporabo dveh nizov z maketrani ()

 # 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))

Izhod

 (97: 100, 98: 101, 99: 102) ValueError: prva dva argumenta maketrana morata biti enake dolžine 

Tukaj prva dva strune enako dolgi abcin defso opredeljeni. In ustrezen prevod je ustvarjen.

Če natisnete samo prvi prevod, dobite preslikavo 1 na 1 na zaporedje Unicode vsakega znaka v firstString na isti indeksirani znak na secondString.

V tem primeru se 97 ("a") preslika na 100 ("d"), 98 ("b") na 101 ("e") in 99 ("c") na 102 ("f").

Pri poskusu izdelave prevajalske tabele za nize neenake dolžine se pojavi ValueErrorizjema, ki kaže, da morajo biti nizi enake dolžine.

Primer 3: Translacijska tabela z odstranljivim nizom z maketrani ()

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

Izhod

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

Tu se najprej ustvari preslikava med obema nizoma firstString in secondString.

Nato tretji argument thirdString ponastavi preslikavo vsakega znaka v njem Nonein ustvari novo preslikavo za neobstoječe znake.

V tem primeru thirdString ponastavi preslikavo 97 ('a') in 98 ('b') na Nonein ustvari tudi novo preslikavo za 100 ('d'), preslikanih v None.

Zanimive Članki...