Методът низ maketrans () връща таблица за преобразуване за превод, използваема за метод translate ().
С най-прости думи, maketrans()
методът е статичен метод, който създава едно към едно съпоставяне на даден знак към неговото превеждане / замяна.
Той създава Unicode представяне на всеки символ за превод.
Тогава това преобразуване на превод се използва за заместване на символ на съответстващия му знак, когато се използва в метода translate ().
Синтаксисът на maketrans()
метода е:
string.maketrans (x (, y (, z)))
Тук y и z са незадължителни аргументи.
String maketrans () Параметри
maketrans()
методът отнема 3 параметъра:
- x - Ако е предоставен само един аргумент, това трябва да е речник.
Речникът трябва да съдържа преобразуване 1 към 1 от един символен низ към неговия превод ИЛИ Unicode номер (97 за „а“) към неговия превод. - y - Ако са предадени два аргумента, това трябва да са два низа с еднаква дължина.
Всеки символ в първия низ е заместител на съответния му индекс във втория низ. - z - Ако са предадени три аргумента, всеки знак в третия аргумент се преобразува в None.
Върната стойност от String maketrans ()
В maketrans()
метода връща маса превод с картографиране на реден Unicode, за да му превод / подмяна 1-към-1.
Пример 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“)
Тук е дефиниран речник на речника. Той съдържа съпоставяне на символи 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: първите два аргумента на maketrans трябва да имат еднаква дължина
Тук на първо място, на два низа с еднаква дължина 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
.