如何使用Python统计单词列表中含两个以上元音的复杂单词数量?
Python统计包含两个以上元音的单词数量
核心思路
- 定义元音集合(统一转小写处理,避免大小写干扰)
- 遍历单词列表,统计每个单词中的元音数量
- 筛选出元音数量大于2的单词,统计其总数
实现代码
基础版(分步清晰)
def count_complex_words(word_list): # 定义小写元音集合,统一转小写后匹配 vowels = {'a', 'e', 'i', 'o', 'u'} complex_count = 0 for word in word_list: # 单词转小写,消除大小写差异 lower_word = word.lower() # 统计当前单词的元音数量 vowel_count = sum(1 for char in lower_word if char in vowels) # 判断是否为复杂单词(元音数>2) if vowel_count > 2: complex_count += 1 return complex_count
简洁版(列表推导式)
如果追求代码简洁,可直接用列表推导式筛选符合条件的单词,再取长度:
def count_complex_words(word_list): vowels = {'a', 'e', 'i', 'o', 'u'} return len([word for word in word_list if sum(1 for c in word.lower() if c in vowels) > 2])
使用示例
# 测试用单词列表 sample_words = ["apple", "banana", "cat", "elephant", "dog", "university", "PYTHON"] print(count_complex_words(sample_words)) # 输出:3
解释:
banana(3个元音)、elephant(3个元音)、university(4个元音)符合条件,共3个
注意事项
- 大小写兼容:通过
word.lower()统一转小写,确保A/a、E/e等都被正确统计 - 特殊字符处理:如果单词包含标点(比如
"hello!"),可先通过word.strip('.,!?')清理后再统计,根据实际需求调整 - 空列表兼容:输入为空列表时,函数返回0,符合预期逻辑
内容的提问来源于stack exchange,提问作者Gopi Kishan
相关产品推荐
相关产品推荐

