Подсчет вхождений символа в строке в Python

  1. Используйте функцию count() для подсчета количества символов, встречающихся в строке в Python
  2. Используйте collections.Counter для подсчета вхождений символа в строку в Python
  3. Использование регулярных выражений для подсчета вхождений символа в строку в Python
  4. Используйте defaultdict для подсчета вхождений символа в строку в Python
  5. Используйте pandas.value_counts() для подсчета вхождений символа в строку в Python
  6. Используйте lambda выражение для подсчета вхождений символа в строку в Python
  7. Используйте цикл for для подсчета вхождений символа в строку в Python

В программировании строка - это последовательность символов.

В этом руководстве будет показано, как подсчитать количество вхождений символа в строку в Python.

Используйте функцию count() для подсчета количества символов, встречающихся в строке в Python

Мы можем подсчитать появление значения в строках с помощью функции count(). Он вернет, сколько раз значение появляется в данной строке.

Например,

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

Выход:

4

Помните, что верхний и нижний регистры считаются разными символами. A и a будут рассматриваться как разные символы и иметь разные значения.

Используйте collections.Counter для подсчета вхождений символа в строку в Python

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

Используйте defaultdict для подсчета вхождений символа в строку в Python

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

Используйте pandas.value_counts() для подсчета вхождений символа в строку в Python

Мы можем использовать метод 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.

Используйте lambda выражение для подсчета вхождений символа в строку в Python

Функции 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

Используйте цикл for для подсчета вхождений символа в строку в Python

Мы перебираем строку, и если элемент равен желаемому символу, переменная count увеличивается до тех пор, пока мы не дойдем до конца строки.

Например,

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

  • Как проверить, что строка пуста в Python
  • Как удалить белый пробел в строке на Python
  • Как конвертировать строку в дату на Python
  • Как преобразовать строку в нижний кейс на Python 2 и 3