Python String maketrans ()

Метод рядка 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.

Цікаві статті...