在 Python 中计算字符串中字符的出现次数

Hiten Kanwar 2023年10月10日
  1. 在 Python 中使用 count() 函数计算字符串中出现的字符数
  2. 在 Python 中使用 collections.Counter 计算字符串中字符的出现次数
  3. 在 Python 中使用正则表达式计算字符串中字符的出现次数
  4. 在 Python 中使用 defaultdict 计算字符串中字符的出现次数
  5. 在 Python 中使用 pandas.value_counts() 计算字符串中字符的出现次数
  6. 在 Python 中使用 lambda 表达式计算字符串中字符的出现次数
  7. 在 Python 中使用 for 循环计算字符串中字符的出现次数
在 Python 中计算字符串中字符的出现次数

在编程中,字符串是一个字符序列。

本教程将介绍如何在 Python 中统计字符串中某个字符出现的次数。

在 Python 中使用 count() 函数计算字符串中出现的字符数

我们可以使用 count() 函数计算字符串中某个值的出现次数。它将返回该值在给定字符串中出现的次数。

例如,

print("Mary had a little lamb".count("a"))

输出:

4

请记住,大写和小写被视为不同的字符。‘A’ 和 ‘a’ 将被视为不同的字符并具有不同的计数。

在 Python 中使用 collections.Counter 计算字符串中字符的出现次数

Countercollections 模块中的一个字典子类。它将元素存储为字典键,并将它们的出现存储为字典值。它不会引发错误,而是为丢失的项目返回零计数。

例如,

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

相关文章 - Python String