Посчитать сколько раз встречается символ в строке python
Перейти к содержимому

Посчитать сколько раз встречается символ в строке python

  • автор:

Сколько раз встречается элемент в списке

Узнать количество указанного элемента в списке можно через функцию count() .

L = ["one", "two", "three", "one"] L.count("one") # 2 

Обновлено: 01 ноября 2020

Комментарии

Авторизуйтесь, чтобы добавлять комментарии

  • Список, кортеж
  • Добавить элемент в список
  • Удалить элемент в списке
  • Размер списка и кортежа
  • Суммировать числа в списке
  • Сколько раз встречается элемент в списке
  • Применить функцию к каждому элементу массива
  • Сортировать список
  • Разбить текст на список
  • Минимальное и максимальное значение элемента списка или кортежа

Как посчитать сколько раз символ встречается в строке? [закрыт]

Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 6 лет назад .

Дана строка s = ‘good shene’, надо создать словарь, где для всех символов, встречающихся в строке, хранится число: сколько раз символ встретился в строке. Для решения задачи надо использовать генератор.

Отслеживать
683 2 2 серебряных знака 15 15 бронзовых знаков
задан 25 окт 2017 в 19:55
goggle lesha goggle lesha
41 1 1 золотой знак 1 1 серебряный знак 4 4 бронзовых знака

‘abcabcabd’.count(‘c’) или ‘abcabcabd’.count(‘abc’) . А вообще такие вещи гуглом за 10 секунд находятся. 😉

25 окт 2017 в 20:00
@MaxU в ответ его! 🙂
25 окт 2017 в 20:06
@ВладимирМартьянов, добавил на тот случай если кто-то из гугла сюда прийдет.
25 окт 2017 в 20:09

@MaxU строка уже задана, например для строки s = ‘good shene’ создать словарь, где для всех символов, встречающихся в строке, хранится число: сколько раз символ встретился в строке. нужно использовать генераторы, чтобы решить задачу в одну строку.

25 окт 2017 в 20:12
@gogglelesha, нажмите кнопку «править» и исправьте вопрос.
25 окт 2017 в 20:13

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Ответ на вопрос после правки:

In [17]: s Out[17]: 'good shene' In [18]: Out[18]:

Классический вариант решения (если нет обязательного условия использовать генераторы):

In [23]: from collections import Counter In [24]: c = Counter(s) In [25]: c Out[25]: Counter() In [26]: c.most_common(1) Out[26]: [('o', 2)] 

Ответ на вопрос до правки:

In [3]: 'abcabcabd'.count('c') Out[3]: 2 In [4]: 'abcabcabd'.count('abc') Out[4]: 2 In [5]: 'abcabcabd'.count('abd') Out[5]: 1 

тоже самое можно проделать с переменными:

In [6]: s1 = 'aaabbbcccdxyz' In [7]: s2 = 'a' In [8]: s1.count(s2) Out[8]: 3 In [9]: s1.count('xyz') Out[9]: 1 

Метод последовательности count() в Python

Метод sequence.count() позволяет узнать сколько раз указанный элемент x появился в последовательности sequence .

Результатом будет целое число, показывающее количество вхождений элемента x в последовательность sequence .

Другими словами, сколько раз указанный элемент x появляется в последовательности или сколько раз встречается буква/символ/подстрока в какой либо строке.

Элементом может быть символ или подстрока, если последовательность строка. Число, если это числовая последовательность и т. д.

Эта операция поддерживаются большинством типов последовательностей, как изменяемых, так и неизменяемых.

Примечание: Множества set и frozenset не поддерживает метод .count() , т. к. это неупорядоченная коллекция без повторяющихся элементов.

Внимание: Для тех, кто ищет, как посчитать количество повторений элементов в списке или количество одинаковых слов в тексте/строке:

  • Подсчет повторений слов в тексте;
  • Класс Counter() модуля collections .

Примеры подсчета количества появлений элемента в последовательности.

>>> x = 'кукуруза' >>> x.count('у') # 3 >>> x.count('ку') # 2 >>> x.count('o') # 0 >>> x = [2, 1, 3, 1, 6, 1, 8, 8, 98, 11] >>> x.count(1) # 3 >>> x.count(8) # 2 >>> x.count(10) # 0 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Проверка существования значения в последовательности Python
  • Конкатенация (сложение) последовательностей
  • Увеличение последовательности в N раз
  • Получение значения элемента по индексу sequence[i]
  • Получение среза sequence[i:j]
  • Получение среза с заданным шагом sequence[i:j:k]
  • Вычисление длины последовательности
  • Наименьшее значение последовательности Python
  • Наибольшее значение в последовательности Python
  • Метод последовательности index()
  • Метод последовательности count()

Подсчет повторений слов в тексте, деление строки на список слов

Для подсчета повторений слов в тексте необходимо научиться преобразовывать текст/сроку в список слов. Это можно сделать двумя способами:

    Использовать метод строки str.split() и делить строку по пробелам между словами.

# исходная строка >>> line = 'Деление строки на список слов' # метод строки `str.split()` >>> words = line.split(' ') >>> words # ['Деление', 'строки', 'на', 'список', 'слов'] 
# исходная строка >>> line = 'Деление строки на список слов' # символ регулярных выражений `\b` >>> import re >>> words = re.split('\W', line) >>> words # ['Деление', 'строки', 'на', 'список', 'слов'] 

Подсчет повторений слов в тексте или символов в строке.

Подсчет повторений слов в тексте или символов в строке можно осуществить несколькими способами. Но для начала, если будем считать слова в тексте, необходимо этот текст подготовить, а именно очистить от знаков пунктуации и преобразовать его в список слов, как показано выше.

Для этого, возьмем готовый код замены пунктуации из подраздела «Удаление пунктуации из строки» и обернем в функцию text_clear() , далее получим из текста список слов и в цикле посчитаем сколько раз каждое слово встречается в исходном тексте.

def text_clear(text): """Удаление пунктуации""" import string for p in string.punctuation + '\n': if p in text: text = text.replace(p, '') return text def counter(list_element): """Счетчик повторений элементов последовательности""" # создаем словарь, где будем хранить элемент списка в качестве, # ключа, а количество его повторений будет значением count = <> # теперь считаем повторения элементов списка for element in list_element: if count.get(element, None): # если в словаре ключ со значением элемента списка # присутствует, то увеличиваем счетчик на 1 count[element] += 1 else: # если в словаре ключа со значением элемента # спитска НЕТ, то создаем ключ со значением 1 count[element] = 1 # сортируем словарь по количеству повторений слов в тексте sorted_values = sorted(count.items(), key=lambda tpl: tpl[1], reverse=True) return dict(sorted_values) # исходный текст >>> text = ('Подсчет повторений всех слов в тексте или повторений' . ' символов в тексте или символов в строке') # преобразовываем текст в нижний регистр # и удаляем всю пунктуацию >>> text = text_clear(text.lower()) # преобразовываем текст в список слов >>> list_word = text.split() >>> counter(list_word) #  # 'подсчет': 1, 'всех': 1, 'слов': 1, 'строке': 1> # теперь считаем количество # повторений символов в строке >>> line = 'абракадабра' # строку в список символов >>> lst = list(line) >>> counter(lst) #

Быстрый способ подсчета повторений элементов в последовательности.

Конечно это все прекрасно работает и хороший пример для самообучения но здесь много кода и к тому же в Python во встроенном модуле collections есть класс Counter() для целей подсчета повторений элементов в последовательности.

Смотрим пример с collections.Counter для подсчета повторений символов в строке:

# считаем количество повторений символов в строке >>> line = 'абракадабра' # строку в список символов >>> lst = list(line) # импортируем счетчик >>> from collections import Counter # готово >>> dict(Counter(lst)) # # все символы, которые повторяются 2 и более раз k:v for k, v in Counter(lst).items() if v > 1> #
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Преобразование строки в число
  • Строку в список, кортеж или множество символов
  • Одинарные, двойные и тройные кавычки в строке Python
  • Вывод специальных символов в строке Python «как есть»
  • Объединение и повторение строк
  • Индексирование строк
  • Использование срезов строк
  • Cрез строки Python от заданного символа/знака до конца строки
  • Создание макета для печати базовыми методами строк
  • Способы форматирования текстовых строк
  • Подсчет повторений слов в тексте, деление строки на список слов
  • Удаление слова из строки Python по фрагменту или шаблону
  • Удаление пунктуации из строки
  • Деление строки по заглавным буквам
  • Создание отчетов и писем по шаблонам

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *