目的:
给定一个需要保留的字符的集合,构建一个过滤函数,并可将其应用于任何字符串s,函数返回一个s的拷贝,该拷贝只包含指定字符集合中的元素。
解决方案:
import string
allchars = string.maketrans('', '')
def makefilter(keep):
delchars = allchars.translate(allchars, keep)
def thefilter(s):
return s.translate(allchars, delchars)
return thefilter
if __name__ == '__main__':
just_vowels = makefilter('aeiouy')
print just_vowels('four score and seven years ago')
print just_vowels('tiger, tiger burning bright')
结果:
ouoeaeeyeaao
ieieuii