在 Python 2.7 中使用翻译
Using translate in Python 2.7
我有一个像 apple
这样的元音单词,想用 translate
替换星号的元音。我正在使用 Python 2.7.
我创建了一个翻译table:
import string
table = string.maketrans('*****', 'aeiou')
但是使用它会删除元音而不用星号替换元音:
>> 'apple'.translate(table, 'aeiou')
'ppl'
我已经知道我可以使用其他方法来实现它,例如 re
:
import re
re.sub('[aeiou]', '*', 'Apple', flags=re.I)
但是我想知道有没有办法使用translate
。
当然,您需要根据 docstring
为其提供允许 __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*'
这可以帮助你:
table = string.maketrans('aeiou', '*****')
'apple'.translate(table)
我有一个像 apple
这样的元音单词,想用 translate
替换星号的元音。我正在使用 Python 2.7.
我创建了一个翻译table:
import string
table = string.maketrans('*****', 'aeiou')
但是使用它会删除元音而不用星号替换元音:
>> 'apple'.translate(table, 'aeiou')
'ppl'
我已经知道我可以使用其他方法来实现它,例如 re
:
import re
re.sub('[aeiou]', '*', 'Apple', flags=re.I)
但是我想知道有没有办法使用translate
。
当然,您需要根据 docstring
为其提供允许__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*'
这可以帮助你:
table = string.maketrans('aeiou', '*****')
'apple'.translate(table)