Строки

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

Итак, дана строка. Задача состоит в том, чтобы посчитать частоту вхождения одного символа в эту строку. Эта конкретная операция со строкой весьма полезна во многих приложениях и используется например как способ для удаления дубликатов или обнаружения нежелательных символов. Рассмотрим 5 методов.

Друзья, подписывайтесь на наш телеграм канал Pythonist. Там еще больше туториалов, задач и книг по Python.

Метод №1. Наивный

Итерируем всю строку для поиска этого конкретного символа, а затем увеличиваем счетчик, когда мы сталкиваемся с этим символом.

# Python3 code to demonstrate 
# occurrence frequency using 
# naive method 

# initializing string 
test_str = "Pythonist"

# using naive method to get count 
# counting t 
count = 0

for i in test_str: 
 if i == 't': 
  count = count + 1

# printing result 
print ("Count of t in Pythonist is : "
       + str(count)) 
Count of t in Pythonist is : 2

Метод №2. Используем count()

Использование count() — самый обычный метод в Python, для того чтобы получить вхождения любого элемента в любом контейнере. Его легко написать и запомнить и, следовательно, его использование довольно популярно.

# Python3 code to demonstrate  
# occurrence frequency using  
# count() 
  
# initializing string  
test_str = "Pythonist"
  
# using count() to get count  
# counting t
counter = test_str.count('t') 
  
# printing result  
print ("Count of t in Pythonist is : "
                           +  str(counter)) 
 Count of e in Pythonist is : 2 

Метод №3: Используем collection.Counter ()

Это менее известный метод для получения количества вхождений элемента в любой контейнер в Python. Он также выполняет задачу, аналогичную описанным выше двум методам, просто является функцией другой библиотеки, т.е. collections.

# Python3 code to demonstrate  
# occurrence frequency using  
# collections.Counter() 
from collections import Counter 
  
# initializing string  
test_str = "Pythonist"
  
# using collections.Counter() to get count  
# counting t  
count = Counter(test_str) 
  
# printing result  
print ("Count of t in Pythonist is : "
                       +  str(count['t']))
  Count of t in Pythonist is : 2 

Способ №4: Используем lambda, sum() и map()

Лямбда-функции вместе с sum() и map() также могут решить конкретно эту задачу подсчета общего числа вхождений определенного элемента в строку. Этот метод использует sum() для суммирования всех вхождений, полученных с помощью map().

# Python3 code to demonstrate  
# occurrence frequency using  
# lambda + sum() + map() 
  
# initializing string  
test_str = "Pythonist"
  
# using lambda + sum() + map() to get count  
# counting t  
count = sum(map(lambda x : 1 if 't' in x else 0, test_str)) 
  
# printing result  
print ("Count of t in Pythonist is : "
                            +  str(count)) 
Count of t in Pythonist is : 2

Способ №5: Используем re + findall()

Регулярные выражения могут помочь нам решить множество задач программирования, связанных со строками. Они также могут помочь нам в достижении результата в задаче поиска вхождения элемента в строку.

# Python3 code to demonstrate  
# occurrence frequency using  
# re + findall() 
import re 
  
# initializing string  
test_str = "Pythonist"
  
# using re + findall() to get count  
# counting t  
count = len(re.findall("t", test_str)) 
  
# printing result  
print ("Count of t in Pythonist is : "
                            +  str(count)) 
 Count of t in Pythonist is : 2 
fakeshluck

Recent Posts

10 удалённых Python-вакансий

Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…

6 месяцев ago

Где искать Python-вакансии в 2026 году: зачем на Talanto.work появился отдельный сценарий поиска

Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…

6 месяцев ago

Срезы в Python со всеми подробностями

Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…

8 месяцев ago

Возведение в степень в Python: полное руководство

В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…

9 месяцев ago

Как удалить дубликаты из списка Python?

Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…

9 месяцев ago

Виртуальный (shared) хостинг от SpaceWeb: технический обзор

Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…

11 месяцев ago