从字符串中删除元音

时间:2016-04-01 00:02:47

标签: python

这是我的代码:

import string # to import the alphabet <-'abcdefghijklmnopqrstuvwxyz'
alpha = string.lowercase
vowels = "aeiou"
alpha = alpha.strip(vowels)
sentence = "methinks it is like a weasel"
words = sentence.split(" ")
characters = list(sentence)

words
characters
alpha
vowels

当我打印时,我得到了这个:

['methinks', 'it', 'is', 'like', 'a', 'weasel']

['m', 'e', 't', 'h', 'i', 'n', 'k', 's', ' ', 'i', 't', ' ', 'i', 's', ' ', 'l', 'i', 'k', 'e', ' ', 'a', ' ', 'w', 'e', 'a', 's', 'e', 'l']

'bcdefghijklmnopqrstuvwxyz'
'aeiou'

我希望从字母表中删除所有元音,但到目前为止它只删除a(领先系数)。

2 个答案:

答案 0 :(得分:0)

[character for character in sentence if character not in vowels] # returns list

这个列表理解应该适合你。

它的工作方式是它利用了vowelssentences iterables 的事实:你可以在它们上面定义一个for循环,可以这么说。具体来说,它会提取sentence中的每个字符,检查vowels中是否显示相同的字符,然后才将其插入列表中。

如果您想在结尾处使用字符串,只需使用join

''.join([character for character in sentence if character not in vowels]) # returns string without vowels

答案 1 :(得分:0)

我写了一个示例代码,希望它有所帮助。

words = ['Ahmad Siavashi', 'Mohammad Siavashi']
print [''.join([c for c in w if c not in 'aeoui']) for w in words]

输出:

['Ahmd Svsh', 'Mhmmd Svsh']

如果您只想要一个字符串,请使用:

print ''.join([c for c in "methinks it is like a weasel" if c not in 'aeoui'])