编写Python函数:找出字符串中含最多'o'字符的单词
解决Python字符串中找含最多'o'单词的问题
嘿,我明白你遇到的问题了——一开始误以为输入是列表,结果发现是字符串,不知道怎么拆分单词对吧?别担心,咱们一步步来搞定这个函数。
首先先明确需求:
编写Python函数
get_most_ooo_word(text),接收一个字符串,返回其中包含最多'o'字符的单词列表;如果多个单词的'o'数量相同且都是最大值,就把这些单词都返回。
核心步骤拆解
- 拆分字符串为单词列表:Python里字符串的
split()方法简直是为这个场景量身定做的——默认会按任意空白字符(空格、制表符等)拆分字符串,直接得到单词列表,比如'aa ao ooo'.split()会返回['aa', 'ao', 'ooo']。 - 统计每个单词的'o'数量:对每个单词用
word.count('o')就能快速得到该单词里'o'的个数,简单又高效。 - 找到最大的'o'数量:先把所有单词的
'o'数量收集起来,用max()函数取最大值。 - 筛选符合条件的单词:遍历单词列表,把所有
'o'数量等于最大值的单词挑出来,组成结果列表。
完整代码实现
def get_most_ooo_word(text): # 拆分字符串为单词列表 words = text.split() if not words: # 处理空输入的边界情况 return [] # 统计每个单词的'o'数量 o_counts = [word.count('o') for word in words] # 找到最大的'o'数量 max_o = max(o_counts) # 筛选出所有符合条件的单词 result = [word for word, count in zip(words, o_counts) if count == max_o] return result
测试验证
咱们用你给的例子测试一下:
- 测试1:
get_most_ooo_word('aa ao ooo')→ 返回['ooo'],完全符合预期。 - 测试2:
get_most_ooo_word('aa ao oa aaaooo aooqq aoooq')→ 返回['aaaooo', 'aoooq'],和你要的结果一致。
额外说明
如果输入字符串里没有'o',函数会返回所有单词(因为每个单词的'o'数量都是0,都是最大值);如果输入是空字符串,会返回空列表,这些边界情况都考虑到啦。
内容的提问来源于stack exchange,提问作者John P.
相关产品推荐
相关产品推荐

