在 Python 中计算字符串中字符的出现次数
Hiten Kanwar
2023年1月30日
2021年7月10日
-
在 Python 中使用
count()
函数计算字符串中出现的字符数 -
在 Python 中使用
collections.Counter
计算字符串中字符的出现次数 - 在 Python 中使用正则表达式计算字符串中字符的出现次数
-
在 Python 中使用
defaultdict
计算字符串中字符的出现次数 -
在 Python 中使用
pandas.value_counts()
计算字符串中字符的出现次数 -
在 Python 中使用
lambda
表达式计算字符串中字符的出现次数 -
在 Python 中使用
for
循环计算字符串中字符的出现次数
在编程中,字符串是一个字符序列。
本教程将介绍如何在 Python 中统计字符串中某个字符出现的次数。
在 Python 中使用 count()
函数计算字符串中出现的字符数
我们可以使用 count()
函数计算字符串中某个值的出现次数。它将返回该值在给定字符串中出现的次数。
例如,
print('Mary had a little lamb'.count('a'))
输出:
4
请记住,大写和小写被视为不同的字符。‘A’ 和 ‘a’ 将被视为不同的字符并具有不同的计数。
在 Python 中使用 collections.Counter
计算字符串中字符的出现次数
Counter
是 collections
模块中的一个字典子类。它将元素存储为字典键,并将它们的出现存储为字典值。它不会引发错误,而是为丢失的项目返回零计数。
例如,
from collections import Counter
my_str = "Mary had a little lamb"
counter = Counter(my_str)
print(counter['a'])
输出:
4
当计数多个字母时,这是一个更好的选择,因为计数器会一次计算所有计数。它比 count()
函数快得多。
在 Python 中使用正则表达式计算字符串中字符的出现次数
正则表达式是包含在模式中的特殊语法,它通过匹配该模式来帮助查找字符串或字符串集。我们导入 re
模块来处理正则表达式。
我们可以使用 findall()
函数来解决我们的问题。
例如,
import re
my_string = "Mary had a little lamb"
print(len(re.findall("a", my_string)))
输出:
4
在 Python 中使用 defaultdict
计算字符串中字符的出现次数
Defaultdict
存在于 collections
模块中,并从字典类派生。它的功能与字典的功能相对相同,只是它从不引发 KeyError
,因为它为从不存在的键提供默认值。
我们可以使用它来获取字符串中某个字符的出现次数,如下所示。
from collections import defaultdict
text = 'Mary had a little lamb'
chars = defaultdict(int)
for char in text:
chars[char] += 1
print(chars['a'])
print(chars['t'])
print(chars['w']) # element not present in the string, hence print 0
输出:
4
2
0
在 Python 中使用 pandas.value_counts()
计算字符串中字符的出现次数
我们可以使用 pandas.value_counts()
方法来获取提供的字符串中出现的所有字符的出现次数。我们需要将字符串作为 Series
对象传递。
例如,
import pandas as pd
phrase = "Mary had a little lamb"
print(pd.Series(list(phrase)).value_counts())
输出:
4
a 4
l 3
t 2
e 1
b 1
h 1
r 1
y 1
M 1
m 1
i 1
d 1
dtype: int64
它返回 Series
对象中所有字符的出现次数。
在 Python 中使用 lambda
表达式计算字符串中字符的出现次数
lambda
函数不仅可以计算给定字符串的出现次数,还可以在我们拥有字符串时作为子字符串列表工作。
请参考以下代码。
sentence = ['M', 'ar', 'y', 'had', 'a', 'little', 'l', 'am', 'b']
print(sum(map(lambda x : 1 if 'a' in x else 0, sentence)))
输出:
4
在 Python 中使用 for
循环计算字符串中字符的出现次数
我们遍历字符串,如果元素等于所需的字符,则计数变量递增,直到到达字符串的末尾。
例如,
sentence = 'Mary had a little lamb'
count = 0
for i in sentence:
if i == "a":
count = count + 1
print(count)
输出:
4
我们可以看到另一种使用 sum()
函数的方法,如下所示。
my_string = "Mary had a little lamb"
print(sum(char == 'a' for char in my_string))
输出:
4