Использование перевода в Python 2.7 - PullRequest
0 голосов
/ 07 января 2019

У меня есть слово с гласными, такими как apple, и я хочу заменить гласные звёздочками на translate. Я использую Python 2.7.

Я создал таблицу перевода:

import string
table = string.maketrans('*****', 'aeiou')

Но его использование удаляет гласные, не заменяя гласные звёздочкой:

>> 'apple'.translate(table, 'aeiou')
'ppl'

Я уже знаю, что могу реализовать это, используя другие методы, такие как re:

import re
re.sub('[aeiou]', '*', 'Apple', flags=re.I)

Но я хочу знать, есть ли способ использовать translate.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Это может помочь вам:

table = string.maketrans('aeiou', '*****')
'apple'.translate(table)
0 голосов
/ 07 января 2019

Конечно, вам нужно дать ему правильное отображение, которое позволяет использовать метод __getitem__ в соответствии с строкой документации

maps = {'a': '*', 'e': '*', 'o': '*', 'i': '*', 'u': '*'}

table = str.maketrans(maps)

'apple'.translate(table)

'*ppl*'

Поскольку вы сейчас упоминаете решение Python 2.7, оно будет выглядеть так:

import string

table = string.maketrans('aeoiu', '*****')

'apple'.translate(table)
'*ppl*'
...