可选字符串过滤器

时间:2014-01-21 07:00:58

标签: python string

我正在尝试创建一个选择性字符串过滤器。我希望能够删除除了我选择保留的字符之外的所有字符。

例如,如果我输入字符串:“我只想要元音”

它会回归:“Ioaeoe”

如果输入,所有其他字符(辅音,数字,符号)将被忽略。 请帮忙。

2 个答案:

答案 0 :(得分:2)

您可以使用此代码:

input_string = "I only want the vowels"
allowed_chars = 'AEIOUaeiou'
output_string = ''.join((c for c in input_string if c in list(allowed_chars)))

但是还有更多可能的解决方案,例如使用正则表达式定义的范围。

答案 1 :(得分:1)

出于您的目的,您可以使用lambda函数执行类似的操作:

def is_vowel(c):
    if c.lower() in ['a', 'e', 'i', 'o', 'u']: return True
    return False

str = 'trial string'

def filter_vowel_string(str):
    return filter(lambda c: is_vowel(c), str)

def filter_consonant_string(str):
    return filter(lambda c: not is_vowel(c), str)

print filter_vowel_string(str)
print filter_consonant_string(str)

您可以将要实现的所有条件函数定义为过滤器。在您的特定情况下,您需要编写一个函数来检查字母是否是元音:

def is_vowel(c):
    if c.lower() in ['a', 'e', 'i', 'o', 'u']: return True
    return False

然后,过滤字符串。同样适用于其他滤镜。理想情况下,您可以将字符串传递给所需的所有过滤器并获取最终字符串。

希望这有帮助。