gpt4 book ai didi

python - 最多 'o' 个字符的单词

转载 作者:太空宇宙 更新时间:2023-11-03 12:12:49 30 4
gpt4 key购买 nike

我需要编写一个 Python 函数,从具有最多“o”字符的字符串中返回单词。例如,get_most_ooo_word(['aa ao ooo']) 应该返回 ['ooo']get_most_ooo_word(['aa ao oa aaaooo aooqq aoooq'] ) 应该返回 ['aaaooo', 'aoooq']

我试过这个:

def get_most_ooo_word(words):
k=0
for i in range(len(words)-1):
if words[i].count('o')>words[i-1].count('o'):
k=words[i]
return(k)

问题是这个列表只包含 1 个元素——整个字符串——我不知道如何分隔这个列表中的单词。

upd:其实任务中有一个错误:输入应该是一个字符串,而不是一个列表

最佳答案

这是使用 collections.defaultdict() 的一种优化方式:

In [39]: def get_max_with(lst, char):
...: d = defaultdict(list)
...: for w in lst:
...: d[w.count(char)].append(w)
...: return d[max(d)]
...:

演示:

In [40]: lst
Out[40]: ['aa', 'ao', 'oa', 'aaaooo', 'aooqq', 'aoooq']

In [41]: get_max_with(lst, 'o')
Out[41]: ['aaaooo', 'aoooq']

如果所有项目的预期字符出现次数为零,您可以在访问字典中的相应值之前检查 max(d) 的数量并返回您想要的任何内容。

关于python - 最多 'o' 个字符的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49219328/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com