Python-merkkijono maketrans ()

Merkkijono maketrans () -menetelmä palauttaa käännöksen kartoitustaulukon, jota voidaan käyttää translate () -menetelmässä.

Yksinkertaisesti sanottuna maketrans()menetelmä on staattinen menetelmä, joka luo hahmon yhden tai yhden kartoituksen sen käännökseen / korvaamiseen.

Se luo Unicode-esityksen jokaisesta merkistä käännettäväksi.

Tätä käännöksen kartoitusta käytetään sitten korvaamaan merkki liitetylle merkille, kun sitä käytetään translate () -menetelmässä.

Menetelmän syntaksi maketrans()on:

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

Tässä y ja z ovat valinnaisia ​​argumentteja.

Merkkijonon maketrans () -parametrit

maketrans() menetelmä ottaa 3 parametria:

  • x - Jos toimitetaan vain yksi argumentti, sen on oltava sanakirja.
    Sanakirjan tulisi sisältää 1: 1-kuvaus yhdestä merkkijonosta käännökseen TAI Unicode-numero (97 a-kirjaimelle) käännökseen.
  • y - Jos kaksi argumenttia välitetään, sen on oltava kaksi yhtä pituista merkkijonoa.
    Jokainen merkkijono ensimmäisessä merkkijonossa korvaa vastaavan hakemiston toisessa merkkijonossa.
  • z - Jos kolme argumenttia välitetään, kolmannen argumentin kukin merkki yhdistetään kohtaan Ei mitään.

Palautusarvo String maketransista ()

maketrans()Menetelmä palauttaa muunnostaulukko, jossa on 1-to-1 kartoitus Unicode järjestysluku sen käännös / vaihto.

Esimerkki 1: Käännöstaulukko maketransin () sisältävän sanakirjan avulla

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

Tuotos

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

Tässä määritellään sanakirjan sanelu. Se sisältää merkkien a, b ja c kartoituksen 123: een, 456: een ja 789: een.

maketrans() luo hahmon Unicode-järjestyksen kartoituksen vastaavaan käännökseen.

Joten 97 ('a') on yhdistetty arvoon '123', 98 'b' 456: een ja 99 'c' 789: een. Tämä voidaan osoittaa molempien sanakirjojen tuloksista.

Lisäksi, jos sanakirjassa on kartoitettu vähintään kaksi merkkiä, se aiheuttaa poikkeuksen.

Esimerkki 2: Kaksi merkkijonoa sisältävä käännöstaulukko maketransilla ()

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

Tuotos

 (97: 100, 98: 101, 99: 102) ValueError: Kahden ensimmäisen maketrans-argumentin on oltava yhtä pitkiä 

Täällä ensimmäinen, kaksi merkkijonoa yhtä pitkiä abcja defmääritellään. Ja vastaava käännös luodaan.

Ainoastaan ​​ensimmäisen käännöksen tulostaminen antaa sinulle yhden kuvasuhteen kunkin merkin Unicode-järjestykseen FirstStringissä samaan indeksoituun merkkiin SecondStringissä.

Tässä tapauksessa 97 ('a') kartoitetaan arvoon 100 ('d'), 98 ('b') - 101 ('e') ja 99 ('c') 102: een ('f').

Yritetään luoda käännöstaulukko epätasaisten pituisten merkkijonojen kohdalla. ValueErrorPoikkeus osoittaa, että merkkijonojen on oltava yhtä pitkiä.

Esimerkki 3: Käännöstaulukko, jossa irrotettava merkkijono ja maketrans ()

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

Tuotos

 (97: Ei mitään, 98: Ei mitään, 99: 102, 100: Ei mitään) 

Tässä luodaan ensin kahden merkkijonon firstString ja secondString kartoitus.

Sitten kolmas argumentti thirdString nollaa jokaisen siinä olevan merkin kartoituksen Noneja luo myös uuden kartoituksen olemattomille merkeille.

Tässä tapauksessa thirdString nollaa 97: n ('a') ja 98: n ('b') Nonekartoituksen ja luo myös uuden kartoituksen 100: lle ('d'), johon on kartoitettu None.

Mielenkiintoisia artikkeleita...