2017-09-26 88 views
0

好了,所以這裏是一個列表:如何計算特定字符出現在列表中的次數?

sentList = ['I am a dog', 'I am a cat', 'I am a house full of cards'] 

我希望能夠計算的總次數,用戶輸入的字母出現在整個列表。

userLetter = input('Enter a letter: ') 

比方說,這封信是「A」

我希望程序要經過和計數次數「A」出現在列表中。 在這種情況下,列表中'a'的總數應爲8.

我試過使用計數函數通過for循環,但我不斷收到數字,我不知道如何解釋,而沒有真正知道如何格式化循環,或者如果我需要它。

我試過這個,但它不起作用。

count = sentList.count(userLetter) 

任何幫助將不勝感激,我找不到任何文件計算列表中的所有事件的發生。

+0

的[計數字符串中的一個字符的發生]可能的複製(https://stackoverflow.com/questions/1155617/count-occurrence-of-a-character-in-a-string) –

回答

0

您是否嘗試過這樣的事情?

userLetter = input('Enter a letter: ') 
sentList = ['I am a dog', 'I am a cat', 'I am a house full of cards'] 

letterCount = 0 
for sentence in sentList: 
    letterCount += sentence.count(userLetter) 

print("Letter appears {} times".format(letterCount)) 
+0

的理解這一點的關鍵是「在sentList中的句子」給你一個叫做句子的對象,你可以在for循環中使用它。該對象等於列表中每個元素的值,在這種情況下是一個字符串。我們可以通過string.count(letter)來獲取字母出現在字符串中的次數。通過將該值添加到letterCount中,併爲每個句子重複一遍,我們就得到了我們的答案! –

+0

真棒解釋!謝謝! –

+0

不客氣! –

2

將所有字符串合併爲一個字符串,然後使用count函數。

count = ''.join(sentList).count(userLetter) 
0

您的方法是半正確的。問題是你需要通過list

word_count=0 
for l in sentList: 
    word_count+= l.count(userLetter) 
2

使用sum()內置加起來列表中的每個字符串的計數:

total = sum(s.count(userLetter) for s in sentList) 
相關問題