„Python“ eilutės maketrans ()

String maketrans () metodas pateikia vertimo susiejimo lentelę, naudojamą metodo translate () naudojimui.

Paprasčiau tariant, maketrans()metodas yra statinis metodas, sukuriantis simbolio susiejimą vienas su kitu su jo vertimu / pakeitimu.

Tai sukuria „Unicode“ kiekvieno simbolio atvaizdavimą vertimui.

Šis vertimo susiejimas naudojamas pakeičiant simbolį jo susietu simboliu, kai naudojamas „translate ()“ metodu.

maketrans()Metodo sintaksė yra:

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

Čia y ir z yra neprivalomi argumentai.

Styginių maketrans () parametrai

maketrans() metodas apima 3 parametrus:

  • x - jei pateikiamas tik vienas argumentas, tai turi būti žodynas.
    Žodyne turėtų būti 1–1 atvaizdavimas nuo vieno simbolio eilutės iki jo vertimo ARBA „Unicode“ numerį (97 - „a“) ​​į vertimą.
  • y - jei perduodami du argumentai, tai turi būti dvi vienodo ilgio eilutės.
    Kiekvienas pirmosios eilutės simbolis pakeičia atitinkamą indeksą antroje eilutėje.
  • z - Jei perduodami trys argumentai, kiekvienas trečiojo argumento simbolis susiejamas su Nėra.

Grąžinimo vertė iš „String maketrans“ ()

maketrans()Metodas grąžina vertimo lentelę, su 1-į-1 rodymo Unicode kelintiniai į jo vertimo / pakeitimo.

1 pavyzdys: Vertimo lentelė, naudojant žodyną su 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))

Rezultatas

 (97: „123“, 98: „456“, 99: „789“) (97: „123“, 98: „456“, 99: „789“) 

Čia apibrėžtas žodyno diktantas. Jame yra susieti simboliai a, b ir c atitinkamai su 123, 456 ir 789.

maketrans() sukuria simbolio Unicode eilės atvaizdavimą atitinkamam jo vertimui.

Taigi 97 („a“) priskirtas „123“, 98 „b“ - 456 ir 99 „c“ - 789. Tai galima įrodyti iš abiejų žodynų išvesties.

Be to, jei žodyne atvaizduojami du ar daugiau simbolių, tai sukelia išimtį.

2 pavyzdys: Vertimo lentelė, naudojant dvi eilutes su „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))

Rezultatas

 (97: 100, 98: 101, 99: 102) „ValueError“: pirmieji du „maketrans“ argumentai turi būti vienodo ilgio 

Čia pirma, dvi eilutes vienodo ilgio abcir defyra apibrėžta. Ir sukuriamas atitinkamas vertimas.

Spausdinant tik pirmąjį vertimą, jūs galite susieti 1–1 kiekvieno simbolio „Unicode“ eilės ženklą „firstString“ su tuo pačiu indeksuotu simboliu „SecondString“.

Šiuo atveju 97 („a“) priskirtas 100 („d“), 98 („b“) iki 101 („e“) ir 99 („c“) iki 102 („f“).

Bandant sukurti nevienodo ilgio eilučių vertimo lentelę, kyla ValueErrorišimtis, nurodanti, kad eilutės turi būti vienodo ilgio.

3 pavyzdys: Vertimo lentelė su nuimama eilute su „maketrans“ ()

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

Rezultatas

 (97: nėra, 98: nėra, 99: 102, 100: nėra) 

Čia pirmiausia sukuriamas dviejų „firstString“ ir „secondString“ eilučių susiejimas.

Tada trečiasis argumentas „thirdString“ atstato kiekvieno jame esančio simbolio atvaizdavimą Noneir sukuria naują neegzistuojančių simbolių atvaizdavimą.

Šiuo atveju „thirdString“ atstato 97 („a“) ir 98 („b“) Nonesusiejimą ir taip pat sukuria naują 100 („d“) susiejimo susiejimą None.

Įdomios straipsniai...