Можно ли заменить один символ двумя с помощью макетранса? - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу заменить символ with на ae.Как я могу получить это?Вот моя попытка с maketrans и translate:

word = 'være'
letters = ('å','ø', 'æ')
replacements = ('a','o','ae')

table = word.maketrans(letters, replacements)
#table = word.maketrans(''.join(letters),''.join(replacements))
word_translated = word.translate(table)
print(word_translated)

Выдает ошибки:

TypeError: maketrans() argument 2 must be str, not tuple
ValueError: the first two maketrans arguments must have equal length

1 Ответ

0 голосов
/ 22 декабря 2018

Да, это возможно.Вам необходимо указать dict в качестве аргумента для maketrans().Как указано в документах

Если имеется только один аргумент, это должен быть словарь, отображающий ординалы Юникода (целые числа) или символы (строки длиной 1) в ординалы Юникода, строк (произвольной длины) или Нет.Затем символьные клавиши будут преобразованы в порядковые числа.

word = 'være'
letters = ('å','ø', 'æ')
replacements = ('a','o','ae')

table = word.maketrans(dict(zip(letters, replacements)))
word_translated = word.translate(table)
print(word_translated)

output

vaere
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...