2017-09-26 87 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) 
相关问题