-2

我在处理老师布置的作业时遇到了问题。我是一个python新手,所以我不太懂这种语言。

我需要创建一个函数,它给出一串单词并查找带有更多“a”的单词,如果有两个单词具有相同数量的“a”,则打印第一个。

编辑1:是的,我的想法是查看每个单词并使用类似的东西str.count("a"),然后打印具有最高值的单词

4

2 回答 2

3
>>> words = "foo bar baz banana"
>>> max(words.split(), key=lambda x:x.count("a"))
'banana'
于 2012-10-10T14:03:40.483 回答
0

这个答案应该很简单,即使对于初学者也是如此,因为它只使用非常基本的命令:

s = 'caaat caat cat kittycaat, rack, smaaack'
x = 0
for i in s.split():
    if i.count('a') > x:
        x = i.count('a')
        word = i
print word

基本上,它使用字符串的 .split() 函数将字符串拆分为单独的单词。然后 for 循环遍历每个单词,注意每个单词中有多少个 'a',如果有超过 x 个单词,它会用数字更新 x 并将单词放入 'word' 变量中。

当循环得到另一个带有更多 'a' 的单词时,它会再次更新 x 并再次更新单词,但是如果它得到一个带有更少 'a' 的单词,那么它将什么也不做。

于 2012-10-10T14:13:56.327 回答