Подсчет слов в строке в Python

  1. Используйте методы split() и len() для подсчета слов в строке Python
  2. Используйте модуль RegEx для подсчета слов в строке Python
  3. Используйте методы sum(), strip() и split() для подсчета слов в строке Python
  4. Используйте метод count() для подсчета слов в Python String Python

Из этого туториала Вы узнаете, как считать слова в строковом Python.

Используйте методы split() и len() для подсчета слов в строке Python

split() - это встроенный в Python метод, который разделяет слова внутри строки с помощью определенного разделителя и возвращает массив строк. Этот метод принимает в качестве аргумента не более двух параметров:

  • separator (необязательно) - действует как разделитель (например, запятые, точка с запятой, кавычки или косая черта). Задает границу, на которой нужно разделить строку. По умолчанию разделителем является любой пробел (пробел, новая строка, табуляция и т. Д.), Если separator не указан.
  • maxsplit (необязательно) - определяет максимальное количество разделений. Значение по умолчанию maxsplit, если не определено, равно -1, что означает, что он не имеет ограничений и разбивает строку на несколько частей.

Синтаксис split():

str.split(separator, maxsplit)

len () также является встроенным методом Python, который возвращает количество строк в массиве или подсчитывает длину элементов в объекте. Этот метод принимает только один параметр: строку, байты, список, объект, набор или коллекцию. Он вызовет исключение TypeError, если аргумент отсутствует или недействителен.

Синтаксис len():

len(s)

Посмотрим, как методы split() и len() подсчитывают количество слов в строке.

Пример 1: без параметров

# initialize string
text = 'The quick brown fox jumps over the lazy dog'

# default separator: space
result = len(text.split())

print("There are " + str(result) + " words.")

Выход:

There are 9 words.

Пример 2: С параметром separator

# initialize string
bucket_list = 'Japan, Singapore, Maldives, Europe, Italy, Korea'

# comma delimiter
result = len(bucket_list.split(','))

# Prints an array of strings
print(bucket_list.split(','))

print("There are " + str(result) + " words.")

Выход:

['Japan', ' Singapore', ' Maldives', ' Europe', ' Italy', ' Korea']
There are 6 words.

Метод split() вернет новый список строк, а len() считает строку внутри списка.

Пример 3: С параметрами separator и maxsplit

# initialize string
bucket_list = 'Japan, Singapore, Maldives, Europe, Italy, Korea'

# comma delimiter
result = len(bucket_list.split(',', 3))

# Prints an array of strings
print(bucket_list.split(',', 3))

print("There are " + str(result) + " words.")

Выход:

['Japan', ' Singapore', ' Maldives', ' Europe, Italy, Korea']
There are 4 words.

maxsplit разделяет только первые три запятые в bucket_list. Если вы установите maxsplit, в списке будет элементmaxsplit+1.

Выход:

['Japan', ' Singapore', ' Maldives, Europe, Italy, Korea']
There are 3 words.

Метод split() разбивает большие строки на более мелкие. Следовательно, подсчет слов в массиве строк будет основан не на словах, а на том, как определен разделитель.

Используйте модуль RegEx для подсчета слов в строке Python

Регулярное выражение, сокращенно regex или regexp, - очень мощный инструмент для поиска и управления текстовыми строками; это можно использовать для предварительной обработки данных, проверки, поиска шаблона в текстовой строке и т. д. Regex также может помочь в подсчете слов в текстовой строке в сценариях, где есть знаки препинания или специальные символы, которые не нужны. Regex - это встроенный в Python пакет, поэтому нам просто нужно импортировать пакет re, чтобы начать его использовать.

# import regex module
import re

# initialize string
text = 'Python !! is the be1st $$             programming language @'

# using regex findall()
result = len(re.findall(r'\w+', text))

print("There are " + str(result) + " words.")

Выход:

There are 6 words.

Используйте методы sum(), strip() и split() для подсчета слов в строке Python

Этот подход считает слова без использования регулярного выражения. sum(), strip() и split() - все это встроенные методы в Python. Мы кратко обсудим каждый метод и его функции.

Метод sum() складывает элементы слева направо и возвращает сумму. Метод принимает два параметра:

  • iterable (обязательно) - строка, список, кортеж и т. Д. Для суммирования. Это должны быть числа.
  • start (необязательно) - число, добавляемое к сумме или возвращаемому значению метода.

Синтаксис sum():

sum(iterable, start)

Следующим является метод strip(), который возвращает копию строки без начальных и конечных пробелов, если нет аргументов; в противном случае это удаляет строку, определенную в аргументе.

  • chars (необязательно) - указывает строку, которую нужно удалить из левой и правой частей текста.

Синтаксис string.strip():

string.strip(chars)

Наконец, метод split() уже обсуждался до этого подхода.

Теперь давайте используем эти методы вместе для подсчета слов в строке. Во-первых, нам нужно импортировать строку, встроенный модуль Python, прежде чем использовать его функции.

import string

# initialize string
text = 'Python !! is the be1st $$             programming language @'

# using the sum(), strip(), split() methods
result = sum([i.strip(string.punctuation).isalpha() for i in text.split()])

print("There are " + str(result) + " words.")

Выход:

There are 5 words.

Используйте метод count() для подсчета слов в Python String Python

Метод count() - это встроенный в Python метод. Он принимает три параметра и возвращает количество вхождений на основе данной подстроки.

  • substring (обязательно) - ключевое слово для поиска в строке
  • start (опция) - указатель начала поиска
  • stop (опция) - указатель того, где заканчивается поиск

Примечание. В Python индекс начинается с 0.

Синтаксис count():

string.count(substring, start, end)

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

# initialize string
text = "Python: How to count words in string Python"
substring = "Python"

total_occurrences = text.count(substring)

print("There are " + str(total_occurrences) + " occurrences.")

Выход:

There are 2 occurrences.

В этом методе не имеет значения, является ли подстрока целым словом, фразой, буквой или любой комбинацией символов или цифр.

Таким образом, вы можете выбрать любой из этих подходов в зависимости от вашего варианта использования. Для слов, разделенных пробелами, мы можем использовать простой подход: функции split() или len(). Для фильтрации текстовых строк для подсчета слов без специальных символов используйте модуль regex. Создайте шаблон, в котором подсчитываются слова, не содержащие определенных символов. Без использования regex используйте альтернативу, которая представляет собой комбинацию методов sum() + strip() + split(). Наконец, метод count() также может использоваться для подсчета конкретного слова, найденного в строке.

Сопутствующая статья - Python String

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