Python 在包含更多a';s

Python 在包含更多a';s,python,Python,我在老师布置的作业上遇到了麻烦。我是python新手,所以我不太懂这门语言 我需要创建一个函数,该函数给定一个单词字符串,并查找上面有更多“a”的单词,如果有两个单词的“a”数相同,则打印第一个单词 编辑1: 是的,我的想法是看每个单词,然后使用类似于str.count(“a”)的东西,然后用最高值打印单词。这个答案应该非常简单,即使对于初学者也是如此,因为它只使用非常基本的命令: >>> words = "foo bar baz banana" >>> ma

我在老师布置的作业上遇到了麻烦。我是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”的单词,那么它将一事无成。

获得帮助的一个很好的起点是展示你到目前为止的想法……你有没有机会告诉我们你是如何手动完成的?@Downvoter:不,这不是一个好问题,但是与其只是让新家伙被遗忘,不如给他一个编辑的机会?你有什么想法吗?这就是为什么我说,“手动”如果你打算用铅笔在一张纸上做这件事,你会怎么做?是的,我的想法是看每个单词,用str.count(“a”)之类的东西,然后用最高值打印这个单词好吧!这听起来是个很好的开始。你如何对收藏中的每一个价值都做些什么?哇,谢谢,这真的很容易理解!!我真的不明白z字母为什么要用它?对不起,我从IDLE处理了错误的代码。z应该是“s.split()”,我在答案中修正了它。你现在明白代码的工作原理了吗?克里斯托弗解释了很多。顺便说一句,拆分返回一个单词列表,代码中的“i”基本上是该列表的每个元素,即一个单词。谢谢。我尝试了你的解决方案,效果很好!但是我不懂lambda方法,也许我会在以后的作业中使用它。但是谢谢!