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 abc
i def
definirani. 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 ValueError
iznimke 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 None
i 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
.