Python String maketrans ()

Методът низ maketrans () връща таблица за преобразуване за превод, използваема за метод translate ().

С най-прости думи, maketrans()методът е статичен метод, който създава едно към едно съпоставяне на даден знак към неговото превеждане / замяна.

Той създава Unicode представяне на всеки символ за превод.

Тогава това преобразуване на превод се използва за заместване на символ на съответстващия му знак, когато се използва в метода translate ().

Синтаксисът на maketrans()метода е:

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

Тук y и z са незадължителни аргументи.

String maketrans () Параметри

maketrans() методът отнема 3 параметъра:

  • x - Ако е предоставен само един аргумент, това трябва да е речник.
    Речникът трябва да съдържа преобразуване 1 към 1 от един символен низ към неговия превод ИЛИ Unicode номер (97 за „а“) към неговия превод.
  • y - Ако са предадени два аргумента, това трябва да са два низа с еднаква дължина.
    Всеки символ в първия низ е заместител на съответния му индекс във втория низ.
  • z - Ако са предадени три аргумента, всеки знак в третия аргумент се преобразува в None.

Върната стойност от String maketrans ()

В maketrans()метода връща маса превод с картографиране на реден Unicode, за да му превод / подмяна 1-към-1.

Пример 1: Таблица за преводи, използвайки речник с 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))

Изход

 (97: „123“, 98: „456“, 99: „789“) (97: „123“, 98: „456“, 99: „789“) 

Тук е дефиниран речник на речника. Той съдържа съпоставяне на символи a, b и c съответно на 123, 456 и 789.

maketrans() създава съпоставяне на реда на Unicode на символа към съответния му превод.

И така, 97 ('a') е картографирано на '123', 98 'b' на 456 и 99 'c' на 789. Това може да бъде демонстрирано от резултата на двата речника.

Също така, ако два или повече знака са картографирани в речника, това поражда изключение.

Пример 2: Таблица за преводи, използваща два низа с макетрани ()

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

Изход

 (97: 100, 98: 101, 99: 102) ValueError: първите два аргумента на maketrans трябва да имат еднаква дължина 

Тук на първо място, на два низа с еднаква дължина abcи defса определени. И се създава съответният превод.

Отпечатването само на първия превод ви дава съпоставяне 1 към 1 с поредния ред на Unicode на всеки символ в firstString на същия индексиран символ на secondString.

В този случай 97 ('a') се преобразува в 100 ('d'), 98 ('b') в 101 ('e') и 99 ('c') в 102 ('f').

Опитът за създаване на таблица за превод за нива с неравномерна дължина поражда ValueErrorизключение, което показва, че струните трябва да имат еднаква дължина.

Пример 3: Транслационна таблица с подвижен низ с макетрани ()

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

Изход

 (97: Няма, 98: Няма, 99: 102, 100: Няма) 

Тук, първо, се създава картографирането между двата низа firstString и secondString.

След това третият аргумент thirdString нулира картографирането на всеки знак в него Noneи също така създава ново картографиране за несъществуващи символи.

В този случай thirdString нулира картографирането на 97 ('a') и 98 ('b') в None, а също така създава ново картографиране за 100 ('d'), съпоставено с None.

Интересни статии...