You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 08:59:03