Str maketrans python 3

Python String maketrans() Method

Create a mapping table, and use it in the translate() method to replace any «S» characters with a «P» character:

Definition and Usage

The maketrans() method returns a mapping table that can be used with the translate() method to replace specified characters.

Syntax

Parameter Values

Parameter Description
x Required. If only one parameter is specified, this has to be a dictionary describing how to perform the replace. If two or more parameters are specified, this parameter has to be a string specifying the characters you want to replace.
y Optional. A string with the same length as parameter x. Each character in the first parameter will be replaced with the corresponding character in this string.
z Optional. A string describing which characters to remove from the original string.

More Examples

Example

Use a mapping table to replace many characters:

Example

The third parameter in the mapping table describes characters that you want to remove from the string:

txt = «Good night Sam!»
x = «mSa»
y = «eJo»
z = «odnght»
mytable = str.maketrans(x, y, z)
print(txt.translate(mytable))

Example

The maketrans() method itself returns a dictionary describing each replacement, in unicode:

Unlock Full Access 50% off

COLOR PICKER

colorpicker

Join our Bootcamp!

Report Error

If you want to report an error, or if you want to make a suggestion, do not hesitate to send us an e-mail:

Thank You For Helping Us!

Your message has been sent to W3Schools.

Top Tutorials
Top References
Top Examples
Get Certified

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Источник

Метод maketrans() и translate() в Python

Метод maketrans() string возвращает таблицу сопоставления для перевода, используемую для метода translate().

Проще говоря, метод ‒ это статический метод, который создает взаимно однозначное отображение символа на его перевод/замену.

Он создает представление Unicode для каждого символа для перевода.

Это сопоставление перевода затем используется для замены символа на его сопоставленный символ при использовании в методе translate().

Здесь y и z ‒ необязательные аргументы.

Параметры строки

Метод в Python принимает 3 параметра:

  • x ‒ если указан только один аргумент, это должен быть словарь. Он должен содержать преобразование 1 к 1 одной символьной строки или номер Unicode (97 для ‘a’) на ее перевод.
  • y ‒ если переданы два аргумента, это должны быть две строки одинаковой длины. Каждый символ в первой строке является заменой соответствующего индекса во второй строке.
  • z ‒ если переданы три аргумента, каждый символ в третьем аргументе отображается в None.

Возвращаемое значение

Модуль возвращает таблицу перевода с отображением 1 к 1 порядкового номера Unicode в его перевод/замену.

Пример 1: Таблица перевода с использованием словаря

# example dictionary dict = string = "abc" print(string.maketrans(dict)) # example dictionary dict = string = "abc" print(string.maketrans(dict))

Здесь определяется словарь dict . Он содержит отображение символов a, b и c на 123, 456 и 789 соответственно.

Функция создает отображение порядкового номера 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))
 ValueError: the first two maketrans arguments must have equal length

Здесь сначала определяются две строки равной длины 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))

Здесь сначала создается сопоставление между двумя строками firstString и secondString .

Затем третий аргумент thirdString сбрасывает отображение каждого символа в нем на None, а также создает новое отображение для несуществующих символов.

В этом случае thirdString сбрасывает отображение 97 (‘a’) и 98 (‘b’) в None, а также создает новое отображение для 100 (‘d’), отображаемое в None.

Метод string translate() возвращает строку, в которой каждый символ сопоставлен с соответствующим символом в таблице перевода.

Метод в Python использует таблицу перевода для замены/перевода символов в данной строке в соответствии с таблицей сопоставления.

Таблица трансляции создается статическим методом maketrans().

Параметры

Метод принимает единственный параметр:

  • table ‒ таблица трансляции, содержащая отображение между двумя символами; обычно создается maketrans().

Возвращаемое значение

Команда возвращает строку, в которой каждый символ сопоставляется с соответствующим символом в соответствии с таблицей перевода.

Пример 1: Перевод и отображение с использованием таблицы перевода

# first string firstString = "abc" secondString = "ghi" thirdString = "ab" string = "abcdef" print("Original string:", string) translation = string.maketrans(firstString, secondString, thirdString) # translate string print("Translated string:", string.translate(translation))
Original string: abcdef Translated string: idef

Но строка удаления thirdString сбрасывает сопоставление на a, а b на None.

Итак, когда строка переводится с помощью translate(), a и b удаляются, а c заменяется i, выводя idef.

Пример 2: с таблицей ручного перевода

# translation table - a dictionary translation = string = "abcdef" print("Original string:", string) # translate string print("Translated string:", string.translate(translation))
Original string: abcdef Translated string: idef

Здесь мы не создаем таблицу перевода из maketrans(), а вручную создаем перевод словаря сопоставления.

Затем этот перевод используется для перевода строки, чтобы получить тот же результат, что и в предыдущем примере.

Источник

Читайте также:  Bill lubanovic introducing python modern computing in simple packages
Оцените статью