Строковая функция maketrans() в Python возвращает таблицу символов для перевода, которую можно использовать для метода translate(). Кроме того, в нем указывается список символов, которые необходимо заменить из основной строки или удалить.
Что такое строковая функция maketrans() в Python?
Функция maketrans() в Python — это встроенная функция сопоставления, которая сопоставляет символы строки с их заменой или, другими словами, с ее переводом. maketrans() — вспомогательный метод для функции translate(). Она помогает методу translate(), возвращая таблицу перевода, используемую для однозначного сопоставления строковых символов.
Проще говоря, метод Python maketrans() — это статический метод, который создает однозначное сопоставление символа с его переводом или заменой. Он создает представление Unicode для каждого символа для перевода. Это сопоставление перевода затем используется для замены символа его сопоставленным символом при использовании в методе translate().
Синтаксис
|
1 |
maketrans( str_var1, str_var2, str_var3) |
Предоставленные аргументы являются необязательными, но должен быть хотя бы один аргумент.
Параметры
Функция может иметь три параметра.
- Первый — это str_var1. Он содержит символы, которые необходимо заменить.
- Второй — str_var 2. Содержит символы, которыми необходимо заменить символы str_var1.
- Третий — необязательный, в нем указываются символы, которые необходимо удалить из основного списка.
Возвращаемое значение
Возвращает таблицу переходов, используемую функцией translate().
Примеры программы с использованием метода maketrans()
- Пример 1. Напишем программу, демонстрирующую работу метода maketrans().
|
1 2 3 4 5 6 |
# app.py h1 = "Hello" h2 = "Girls" str_var = "Hello" print(str_var.maketrans(h1, h2)) |
Выход:
|
1 2 3 |
➜ pyt python3 app.py {72: 71, 101: 105, 108: 108, 111: 115} ➜ pyt |
- Пример 2. Напишем программу для печати таблицы переходов, включая третий параметр, удаляющий символы из строки.
|
1 2 3 4 5 6 7 |
# app.py h1 = "qwerty" h2 = "bowled" h3 = "qweled" h4 = "qwerty" print(h4.maketrans(h1, h2, h3)) |
Выход:
|
1 2 3 |
➜ pyt python3 app.py {113: None, 119: None, 101: None, 114: 108, 116: 101, 121: 100, 108: None, 100: None} ➜ pyt |
Таблица перевода с использованием словаря с maketrans()
Давайте воспользуемся функцией maketrans() со словарем Python.
См. следующий код.
|
1 2 3 4 5 6 7 8 9 |
# app.py dict = {"a": "219", "b": "211", "c": "229"} string = "kgb" print(string.maketrans(dict)) dict = {97: "219", 98: "211", 99: "229"} string = "kgb" print(string.maketrans(dict)) |
Выход:
|
1 2 3 4 |
➜ pyt python3 app.py {97: '219', 98: '211', 99: '229'} {97: '219', 98: '211', 99: '229'} ➜ pyt |
Здесь определяется словарь dict. Он содержит отображение символов a, b и c на 219, 211 и 229 соответственно. Метод maketrans() создает сопоставление порядкового номера Unicode символа с соответствующим переводом.
Таким образом, 97(‘a’) отображается на ‘219’, 98 ‘b’ на 211 и 99 ‘c’ на 229. Это можно продемонстрировать из вывода обоих словарей.
Заключение
Строковый метод Python maketrans() возвращает таблицу перевода, которая сопоставляет каждый символ в строке intab с символом в той же позиции в строке outtab. Затем эта таблица передается функции translate(). Следует отметить, что и intab, и outtab должны иметь одинаковую длину.
