Метод 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
.