如何计算字符串中字符出现的次数?
如。“a”在“Mary had a little lamb”中出现了4次。
如何计算字符串中字符出现的次数?
如。“a”在“Mary had a little lamb”中出现了4次。
当前回答
最简单的方法是一行代码:
'Mary had a little lamb'.count("a")
但是如果你想用这个也可以:
sentence ='Mary had a little lamb'
count=0;
for letter in sentence :
if letter=="a":
count+=1
print (count)
其他回答
我不知道“最简单的”,但简单的理解可以做到:
>>> my_string = "Mary had a little lamb"
>>> sum(char == 'a' for char in my_string)
4
利用内置的和,生成器理解和bool是整数的子类的事实:如何乘字符等于'a'。
要获得所有字母的计数,请使用集合。计数器:
>>> from collections import Counter
>>> counter = Counter("Mary had a little lamb")
>>> counter['a']
4
我知道要求是数一个特定的字母。我在这里没有使用任何方法编写泛型代码。
sentence1 =" Mary had a little lamb"
count = {}
for i in sentence1:
if i in count:
count[i.lower()] = count[i.lower()] + 1
else:
count[i.lower()] = 1
print(count)
输出
{' ': 5, 'm': 2, 'a': 4, 'r': 1, 'y': 1, 'h': 1, 'd': 1, 'l': 3, 'i': 1, 't': 2, 'e': 1, 'b': 1}
现在如果你想要任何特定的字母频率,你可以像下面这样打印。
print(count['m'])
2
不使用Counter(), count和regex获得所有字符计数的另一种方法
counts_dict = {}
for c in list(sentence):
if c not in counts_dict:
counts_dict[c] = 0
counts_dict[c] += 1
for key, value in counts_dict.items():
print(key, value)
这个简单直接的函数可能会有帮助:
def check_freq(x):
freq = {}
for c in set(x):
freq[c] = x.count(c)
return freq
check_freq("abbabcbdbabdbdbabababcbcbab")
{'a': 7, 'b': 14, 'c': 3, 'd': 3}
如果需要理解:
def check_freq(x):
return {c: x.count(c) for c in set(x)}