Python String maketrans ()

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

Проще говоря, maketrans()метод - это статический метод, который создает взаимно однозначное сопоставление символа с его переводом / заменой.

Он создает представление Unicode для каждого символа для перевода.

Это сопоставление перевода затем используется для замены символа на его сопоставленный символ при использовании в методе translate ().

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

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

Здесь y и z - необязательные аргументы.

Параметры строки maketrans ()

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

  • x - Если указан только один аргумент, это должен быть словарь.
    Словарь должен содержать преобразование 1 к 1 из односимвольной строки в ее перевод ИЛИ номер Unicode (97 для 'a') в ее перевод.
  • y - если переданы два аргумента, это должны быть две строки одинаковой длины.
    Каждый символ в первой строке является заменой соответствующего индекса во второй строке.
  • z - если переданы три аргумента, каждый символ в третьем аргументе отображается в None.

Возвращаемое значение из String maketrans ()

maketrans()Метод возвращает таблицу перевода с отображением 1-к-1 из Unicode в порядковой ее переводе / замену.

Пример 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') 

Здесь определяется словарь dict. Он содержит отображение символов a, b и c на 123, 456 и 789 соответственно.

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

Итак, 97 ('a') отображается в '123', 98 'b' в 456 и 99 'c' в 789. Это может быть продемонстрировано на выходе обоих словарей.

Кроме того, если в словаре отображаются два или более символа, возникает исключение.

Пример 2: Таблица перевода с использованием двух строк с 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))

Вывод

 (97: 100, 98: 101, 99: 102) ValueError: первые два аргумента maketrans должны иметь одинаковую длину 

Здесь сначала определяются две строки равной длины abcи def. И соответствующий перевод создается.

Печать только первого перевода дает вам соответствие 1 к 1 порядковому номеру каждого символа в Юникоде в firstString с тем же индексированным символом в secondString.

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

При попытке создать таблицу перевода для строк неравной длины возникает ValueErrorисключение, указывающее, что строки должны иметь одинаковую длину.

Пример 3: Трансляционная таблица со съемной строкой с помощью maketrans ()

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

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