让我们说 有一个清单
vowels = ['a', 'e', 'i', 'o', 'u']
x = raw_input("Enter something?")
现在如何在x中找到这些元音的实例?我想修改x,使其只包含非元音字母。
.find无效。
答案 0 :(得分:0)
您可以为每个字母使用count
功能。例如,x.count('a')
将计算单词中'a'
的数量。迭代所有元音并使用sum
查找元音总数。
vowelCount = sum(x.count(vowel) for vowel in vowels)
答案 1 :(得分:0)
from collections import Counter
vowels = {'a', 'e', 'i', 'o', 'u'}
s = "foobar"
print(sum(v for k,v in Counter(s).items() if k in vowels))
3
或者使用默认值为0的dict.get:
s = "foobar"
c = Counter(s)
print(sum(c.get(k,0) for k in vowels))
3
答案 2 :(得分:0)
你可以这样使用,
>>> st = 'test test'
>>> len(re.findall('[aeiou]', st, re.IGNORECASE))
2
或者,
>>> vowels = ['a', 'e', 'i', 'o', 'u']
>>> sum(map(lambda x: vowels.count(x) if x in vowels else 0, st))
2
或者,
>>> len([ ch for ch in st if ch in vowels])
2
答案 3 :(得分:0)
vowels = {'a', 'e', 'i', 'o', 'u'}
x =input('Enter...')
new_string = ''.join(c for c in x if c not in vowels)
将创建x
的新副本减去保存为new_string
的元音。我已将vowels
更改为一组,以便查找时间更快(在此示例中有点微不足道,但在适当的情况下起诉是一个好习惯)。字符串是不可变的,所以你不能只从x
中取出字母,你必须创建一个新的字符串,它是x
的副本而没有你不需要的值。 .join()
将整个事情重新组合在一起。