使用替换的Python3字符串操作

时间:2019-01-08 00:37:40

标签: python-3.x string

我想从一个包含字母但在该字符串中仍然有辅音的字符串中创建一个元音列表。我有一些适用于特定字符串的东西,该字符串中有一个出现,但是当我有多个出现时,它不起作用。

PRINCELY运作良好, EMEKA无效。

我需要帮助!

ResultMatcher resultMatcher =  doesNotExist(); // your method returns here
MvcResult result = new MvcResult(); // some MvcResult object
resultMatcher.match(result); // actual invocation

1 个答案:

答案 0 :(得分:0)

最简单的方法是将str.translate与适当的转换表一起使用。首先,我们将创建一个函数,该函数需要一个字符并以字符串形式返回适当的数字。我们将使用它来构建翻译表。然后我们只在字符串上使用该转换表

def get_number(char):
    return str(ord(char.lower())-96)  # lowercase ascii letters start at 97

vowels = (vowel for letter in 'aeiou' for vowel in (letter, letter.upper()))

table = str.maketrans({vowel: get_number(vowel) for vowel in vowels})

print('PRINCELYPRINCELY'.translate(table))
# PR9NC5LYPR9NC5LY

要将字符串分类为元音和辅音,然后将元音转换为数字

s = 'PRINCELYPRINCELY'

vowels = [ord(char.lower())-96 for char in s if char.lower() in 'aeiou']
# [9, 5, 9, 5]
consonants = s.translate(str.maketrans('','','aeiouAEIOU'))
# 'PRNCLYPRNCLY'
相关问题