Python String maketrani ()

Metoda string maketrans () vraća tablicu mapiranja za prijevod korisnu za metodu translate ().

Jednostavno rečeno, maketrans()metoda je statična metoda koja stvara pojedinačno preslikavanje lika na njegov prijevod / zamjenu.

Stvara Unicode predstavu svakog znaka za prijevod.

Ovo mapiranje prijevoda zatim se koristi za zamjenu znaka na njegov preslikani znak kada se koristi u metodi translate ().

Sintaksa maketrans()metode je:

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

Ovdje su y i z neobavezni argumenti.

Parametri niza maketrans ()

maketrans() metoda uzima 3 parametra:

  • x - Ako je naveden samo jedan argument, to mora biti rječnik.
    Rječnik bi trebao sadržavati preslikavanje 1 na 1 iz niza jednog znaka u njegov prijevod ILI Unicode broj (97 za 'a') u njegov prijevod.
  • y - Ako su proslijeđena dva argumenta, to moraju biti dva niza jednake duljine.
    Svaki znak u prvom nizu zamjena je odgovarajućem indeksu u drugom nizu.
  • z - Ako se predaju tri argumenta, svaki znak u trećem argumentu preslikava se u Ništa.

Povratna vrijednost iz String maketrans ()

maketrans()Metoda vraća prijevoda stol s 1-na-1 mapiranje Unicode rednim njegovog prevođenja / zamjenu.

Primjer 1: Prijevodna tablica pomoću rječnika s maketranima ()

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

Izlaz

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

Ovdje je definiran rječnički dikt. Sadrži mapiranje znakova a, b i c na 123, 456, odnosno 789.

maketrans() kreira mapiranje Unicode-ovog znaka znaka u njegov odgovarajući prijevod.

Dakle, 97 ('a') preslikava se na '123', 98 'b' na 456 i 99 'c' na 789. To se može pokazati iz rezultata oba rječnika.

Također, ako su dva ili više znakova mapirana u rječniku, to dovodi do iznimke.

Primjer 2: Prijevodna tablica pomoću dva niza s maketranima ()

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

Izlaz

 (97: 100, 98: 101, 99: 102) ValueError: prva dva argumenta maketrana moraju imati jednaku duljinu 

Evo prvo, dvije žice jednake duljine abci defdefinirani. I odgovarajući prijevod je stvoren.

Ispis samo prvog prijevoda daje vam preslikavanje 1 na 1 na Unicode redni znak svakog znaka u firstString u isti indeksirani znak na secondString.

U ovom se slučaju 97 ('a') preslikava na 100 ('d'), 98 ('b') na 101 ('e') i 99 ('c') na 102 ('f').

Pokušaj stvaranja tablice prijevoda za nizove nejednake duljine dovodi do ValueErroriznimke koja ukazuje da nizovi moraju imati jednaku duljinu.

Primjer 3: Translacijska tablica s uklonjivim nizom s maketranima ()

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

Izlaz

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

Ovdje se prvo kreira mapiranje između dva niza firstString i secondString.

Zatim, treći argument thirdString resetira mapiranje svakog znaka u njemu Nonei također stvara novo mapiranje za nepostojeće znakove.

U ovom slučaju, thirdString resetira mapiranje 97 ('a') i 98 ('b') na None, a također stvara novo mapiranje za 100 ('d') preslikanih u None.

Zanimljivi članci...