Python virknes maketrans ()

Metode virkne maketrans () atgriež tulkošanas kartēšanas tabulu, ko var izmantot translate () metodei.

Vienkārši sakot, maketrans()metode ir statiska metode, kas izveido rakstzīmes kartēšanu ar vienu pret vienu tās tulkošanai / aizstāšanai.

Tas tulkošanai izveido katras rakstzīmes Unicode attēlojumu.

Pēc tam šo tulkošanas kartēšanu izmanto, lai aizstātu rakstzīmi ar tā kartēto rakstzīmi, ja to izmanto translate () metodē.

Metodes sintakse maketrans()ir:

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

Šeit y un z ir izvēles argumenti.

Stīgu maketrans () parametri

maketrans() metode prasa 3 parametrus:

  • x - ja tiek piegādāts tikai viens arguments, tam jābūt vārdnīcai.
    Vārdnīcai jāietver 1 līdz 1 kartējums no vienas rakstzīmes virknes uz tulkojumu VAI Unicode numurs (97 apzīmējums 'a') tulkojumam.
  • y - ja tiek nodoti divi argumenti, tam jābūt divām vienāda garuma virknēm.
    Katra rakstzīme pirmajā virknē aizstāj tās atbilstošo indeksu otrajā virknē.
  • z - ja tiek nodoti trīs argumenti, katrs trešā argumenta rakstzīme tiek kartēta ar None.

Atgriezeniskā vērtība no virknes maketrans ()

maketrans()Metode atgriež tulkošanas tabulu ar 1 pret 1 kartēšanu ar Unicode Kārtas tās tulkošanas / nomaiņu.

1. piemērs: Tulkošanas tabula, izmantojot vārdnīcu ar 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))

Rezultāts

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

Šeit ir definēts vārdnīcas diktāts. Tas satur a, b un c rakstzīmju kartēšanu attiecīgi uz 123, 456 un 789.

maketrans() izveido rakstzīmes Unicode kārtas kārtas kartējumu ar atbilstošo tulkojumu.

Tātad 97 ('a') ir kartēts ar '123', 98 'b' līdz 456 un 99 'c' līdz 789. To var pierādīt, izmantojot abu vārdnīcu iznākumu.

Turklāt, ja vārdnīcā tiek kartētas divas vai vairākas rakstzīmes, tas rada izņēmumu.

2. piemērs: Tulkošanas tabula, kurā izmantotas divas virknes ar 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))

Rezultāts

 (97: 100, 98: 101, 99: 102) ValueError: pirmajiem diviem maketrans argumentiem jābūt vienāda garuma 

Te, pirmkārt, divas virknes vienāda garuma abcun defir definēti. Un tiek izveidots atbilstošais tulkojums.

Drukājot tikai pirmo tulkojumu, jūs varat 1–1 kartēt katras rakstzīmes Unicode kārtas numuru firstString uz to pašu indeksēto rakstzīmi secondString.

Šajā gadījumā 97 ('a') kartē līdz 100 ('d'), 98 ('b') līdz 101 ('e') un 99 ('c') līdz 102 ('f').

Mēģinot izveidot tulkošanas tabulu nevienāda garuma virknēm, rodas ValueErrorizņēmums, kas norāda, ka virknēm jābūt vienādām.

3. piemērs: Tulkošanas tabula ar noņemamu virkni ar maketrans ()

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

Rezultāts

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

Šeit vispirms tiek izveidota kartēšana starp divām virknēm firstString un SecondString.

Pēc tam trešais arguments thirdString atiestata katrā tajā Noneesošās rakstzīmes kartēšanu un izveido arī jaunu neesošu rakstzīmju kartēšanu.

Šajā gadījumā thirdString atiestata 97 ('a') un 98 ('b') Nonekartēšanu uz un izveido arī jaunu kartējumu 100 ('d'), uz kuriem ir kartēts None.

Interesanti raksti...