在 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