Найти в Дзене
Удалёнка

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

Итак, дана строка. Задача состоит в том, чтобы посчитать частоту вхождения одного символа в эту строку. Эта конкретная операция со строкой весьма полезна во многих приложениях и используется например как способ для удаления дубликатов или обнаружения нежелательных символов. Рассмотрим 5 методов. Метод №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, для того чтобы получить вхождения любого элемента в любом контейнере. Его легко написать и запомнить и, следовательно, его использование довольно п
Оглавление

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

Метод №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