Python karakterlánc maketrans ()

A string maketrans () metódus egy fordítási leképezési táblázatot ad vissza, amely a translate () metódushoz használható.

Egyszerűen fogalmazva: a maketrans()method egy statikus módszer, amely létrehozza a karakter egy-egy leképezését annak fordítására / helyettesítésére.

Minden karakter Unicode ábrázolását hozza létre fordítás céljából.

Ezt a fordítási leképezést azután egy karakter helyettesítésére használják a leképezett karakterre, ha azt a translate () metódusban használják.

A maketrans()módszer szintaxisa :

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

Itt y és z opcionális argumentum.

String maketrans () Paraméterek

maketrans() A módszer 3 paramétert vesz fel:

  • x - Ha csak egy argumentum van megadva, akkor annak szótárnak kell lennie.
    A szótárnak tartalmaznia kell egy-egy leképezést egyetlen karakterláncról a fordításra VAGY Unicode-számot (97 az 'a' esetében) a fordításra.
  • y - Két argumentum átadása esetén két azonos hosszúságú húrnak kell lennie.
    Az első karakterlánc minden karaktere a második karakterlánc megfelelő indexének helyettesítője.
  • z - Három argumentum átadása esetén a harmadik argumentum minden karaktere a Nincshez lesz hozzárendelve.

Visszatérési érték a String maketrans () alapján

A maketrans()módszer egy fordítási táblázatot ad vissza az Unicode sorszám 1: 1 arányú leképezésével annak fordítására / helyettesítésére.

1. példa: Táblázat a maketrans () szótár használatával

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

Kimenet

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

Itt meghatározzuk a szótár diktátumát. Az a, b és c karakterek leképezését tartalmazza a 123, 456 és 789 karakterekre.

maketrans() létrehozza a karakter Unicode sorszámának leképezését a megfelelő fordításhoz.

Tehát 97 ('a') a '123' -ra, 98 'b' 456-ra, a 99 'c' pedig 789-re van feltérképezve. Ez mindkét szótár kimenetéből kimutatható.

Továbbá, ha két vagy több karakter van feltérképezve a szótárban, ez kivételt jelent.

2. példa: Két karakterláncot tartalmazó fordítási táblázat maketrans () használatával

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

Kimenet

 (97: 100, 98: 101, 99: 102) ValueError: az első két maketrans argumentumnak azonos hosszúságúnak kell lennie 

Itt az első két húrok egyenlő hosszúságú abcés defmeghatározása. És létrejön a megfelelő fordítás.

Csak az első fordítás kinyomtatásával 1: 1 arányban hozzárendelheti az egyes karakterek Unicode sorszámát az firstString-ben ugyanahhoz az indexelt karakterhez a secondString-en.

Ebben az esetben 97 ('a') 100-ra ('d'), 98 ('b') - 101-re ('e') és 99 ('c') - 102-re ('f') van leképezve.

Az egyenlőtlen hosszúságú karakterláncok fordítási táblázatának létrehozása megkísérli azt a ValueErrorkivételt, amely jelzi, hogy a karakterláncoknak azonos hosszúságúaknak kell lenniük.

3. példa: Fordító tábla kivehető karakterlánccal, maketrans ()

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

Kimenet

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

Itt először a két karakterlánc, az firstString és a SecondString közötti leképezés jön létre.

Ezután a thirdString harmadik argumentum visszaállítja a benne szereplő karakterek hozzárendelését, Noneés új hozzárendelést hoz létre a nem létező karakterekhez is.

Ebben az esetben a thirdString visszaállítja a 97 ('a') és a 98 ('b') Nonehozzárendelését, és új hozzárendelést hoz létre a 100 ('d') számára, amelyhez hozzárendelt None.

érdekes cikkek...