我在处理老师布置的作业时遇到了问题。我是一个python新手,所以我不太懂这种语言。
我需要创建一个函数,它给出一串单词并查找带有更多“a”的单词,如果有两个单词具有相同数量的“a”,则打印第一个。
编辑1:是的,我的想法是查看每个单词并使用类似的东西str.count("a")
,然后打印具有最高值的单词
我在处理老师布置的作业时遇到了问题。我是一个python新手,所以我不太懂这种语言。
我需要创建一个函数,它给出一串单词并查找带有更多“a”的单词,如果有两个单词具有相同数量的“a”,则打印第一个。
编辑1:是的,我的想法是查看每个单词并使用类似的东西str.count("a")
,然后打印具有最高值的单词
>>> words = "foo bar baz banana"
>>> max(words.split(), key=lambda x:x.count("a"))
'banana'
这个答案应该很简单,即使对于初学者也是如此,因为它只使用非常基本的命令:
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' 的单词,那么它将什么也不做。