我在教師作業時遇到問題。我是一個Python新手,所以我不太瞭解這門語言。在列表中搜索帶有更多字母的單詞
我需要創建一個函數,它給出一串單詞並查找帶有更多「a」的單詞,並且如果有兩個具有相同數字「a」的單詞打印第一個單詞。
編輯1: 是好我的想法是看每個單詞,並使用類似str.count("a")
,然後打印字具有最高值
我在教師作業時遇到問題。我是一個Python新手,所以我不太瞭解這門語言。在列表中搜索帶有更多字母的單詞
我需要創建一個函數,它給出一串單詞並查找帶有更多「a」的單詞,並且如果有兩個具有相同數字「a」的單詞打印第一個單詞。
編輯1: 是好我的想法是看每個單詞,並使用類似str.count("a")
,然後打印字具有最高值
這個答案應該很簡單,即使是初學者,因爲它只使用非常基本的命令:
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並將單詞放入「單詞」變量中。
當循環得到更多'a'的循環時,它會再次更新x和單詞,但是如果它得到的單詞少了'a',那麼它什麼都不會做。
哇謝謝,這真的很容易理解!我不太瞭解z字母爲什麼使用它? – user1502668
對不起,我應對了來自IDLE的錯誤代碼。那個z應該是「s.split()」,我將它固定在答案中。你明白現在的代碼是如何工作的嗎?克里斯托弗解釋了很多。順便說一句,分裂返回一個單詞列表和代碼中的「我」基本上是該列表中的每個元素,即。一個字。 – Protagonist
是的!非常感謝。你的代碼非常容易閱讀! – user1502668
>>> words = "foo bar baz banana"
>>> max(words.split(), key=lambda x:x.count("a"))
'banana'
謝謝。我嘗試了你的解決方案,它的工作原理!但我不明白拉姆達方法,也許我會在未來的任務中做到這一點。但是,謝謝! – user1502668
尋求幫助的一個很好的起點就是展示你到目前爲止所考慮的事情......任何你可以通過手動操作的方式來引導我們? – Crisfole
@Downvoter:不,這不是一個好問題,而不是讓新人陷入湮沒,而不是讓他有機會編輯? – Crisfole
對不起,我的想法對於 – user1502668