我有一个像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
的方法。
答案 0 :(得分:2)
当然,您需要为其提供适当的映射,以允许根据文档字符串使用__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*'
答案 1 :(得分:2)
这可以帮助您:
table = string.maketrans('aeiou', '*****')
'apple'.translate(table)