Метод рядка maketrans () повертає таблицю відображення для перекладу, що використовується для методу 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: Таблиця перекладів із використанням словника з макетранами ()
# 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: перші два аргументи макетранів повинні мати однакову довжину
Ось перші два рядки однакової довжини 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
.