Как найти количество слов в строке python

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

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

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

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

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

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

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

str.split(separator, maxsplit)

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

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

Посмотрим, как методы 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.")

Выход:

Пример 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.")

Выход:

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

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

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

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

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

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

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

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

Наконец, метод 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.")

Выход:

Используйте метод 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.")

Выход:

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

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

можно использовать метод split у строки. Этот метод разбивает строку на список слов, разделенных пробелами или другими символами, которые указываются в качестве аргумента. Затем можно получить количество слов, полученных после разбиения, используя функцию len

Например:

s = "Это наш пример строки"
words = s.split()
num_words = len(words)
print(num_words)

В этом примере мы разбиваем строку s на список слов, разделенных пробелами, используя метод split, затем используем функцию len для получения количества элементов в списке. В итоге будет выведено число 4, так как в строке s 4 слова.

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

s = "Это, пример, строки"
words = s.split(",")
num_words = len(words)
print(num_words)

В этом примере мы разбиваем строку s на список слов, разделенных запятыми, и в итоге будет выведено число 3, так как в строке s 3 слова.

Вы также можете использовать регулярные выражения для разбиения строки по более сложным паттернам. Для этого можете использовать модуль re и функцию re.split. Например:

import re

s = "Это, пример строки"
words = re.split(r'[,s]s*', s)
num_words = len(words)
print(num_words)

В этом примере мы разбиваем строку s на список слов, разделенных запятыми или пробелами, и в итоге будет выведено число 3, так как в строке s 3 слова.

Обратите внимание, что в некоторых случаях может быть требуется учитывать не только пробелы и запятые, но и другие символы, которые могут разделять слова. В таком случае вы можете использовать регулярные выражения или просто вручную разбивать строку на список слов, используя циклы и условные операторы.

На чтение 4 мин Просмотров 2.6к. Опубликовано

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

Содержание

  1. Методы для подсчета количества слов в строке
  2. Использование метода split()
  3. Метод count()
  4. Использование регулярных выражений

Методы для подсчета количества слов в строке

Для подсчета количества слов в строке в Python существует несколько методов. Рассмотрим наиболее распространенные из них.

Использование метода split()

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

Вот как можно использовать метод split() для подсчета количества слов в строке:

string = "Python is a popular programming language"
word_list = string.split()
print(len(word_list))

Здесь мы определяем строку «Python is a popular programming language» и используем метод split() для разбиения ее на список слов. Затем мы используем функцию len() для подсчета количества элементов в списке, которое и будет количеством слов в исходной строке.

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

Например, если строка содержит несколько пробелов между словами, метод split() может воспринимать их как отдельные элементы, что приведет к неправильному результату. Для таких случаев необходимо использовать более продвинутые методы.

Метод count()

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

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

Пример использования метода count() для подсчета количества слов в строке:

sentence = "The quick brown fox jumps over the lazy dog"
word_count = sentence.count(" ") + 1
print("Количество слов в строке:", word_count)

В этом примере мы сначала определяем строку sentence, содержащую несколько слов. Затем мы используем метод count() для подсчета количества пробелов в строке, добавляем 1, и получаем количество слов в строке. Результат выводится на экран.

Этот метод может быть полезен, если вам нужно быстро подсчитать количество слов в строке без использования регулярных выражений или метода split(). Однако стоит учитывать, что он может не работать должным образом, если в строке есть знаки препинания или другие символы, отличные от пробелов, используемых для разделения слов.

Использование регулярных выражений

Использование регулярных выражений — это еще один способ подсчета количества слов в строке. В Python есть модуль re, который позволяет работать с регулярными выражениями.

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

Для подсчета количества слов в строке с помощью регулярных выражений, мы можем использовать функцию findall() из модуля re. Эта функция ищет все совпадения с регулярным выражением и возвращает список найденных строк.

Вот пример использования регулярного выражения для подсчета количества слов в строке:

import re

string = "Это пример строки для подсчета слов"
word_list = re.findall(r'bw+b', string)

print("Количество слов в строке:", len(word_list))

В этом примере мы импортировали модуль re, определили строку, которую мы хотим проанализировать, и затем использовали функцию findall() с регулярным выражением r'bw+b'. Это регулярное выражение соответствует словам, которые состоят из одного или более буквенно-цифровых символов и отделены от других символов пробелами или границами слов.

Функция findall() вернет список найденных слов, который мы затем передадим в функцию len() для подсчета количества слов.

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given a String. The task is to find out the Number Of Words And Characters Present In The String.

     Examples:

    Input: Geeksforgeeks is best Computer Science Portal
    Output:
    The number Of Words are : 6
    The Number Of Characters are : 45
    
    Input: Hello World!!!
    Output:
    The original string is : Hello World!!!
    The number of words in string are : 2
    The number of words in string are :  14

    Count The Number Of  Characters present in a string using len() function. You can also use a for loop for counting characters

    char=0
    for i in string:
        char=char+1

    For Counting 

    Method 1: Using split()

    The split function is quite useful and usually quite a generic method to get words out of the list, but this approach fails once we introduce special characters in the list.

    Python3

    test_string = "Geeksforgeeks is best Computer Science Portal"

    print("The original string is : " + test_string)

    res = len(test_string.split())

    print("The number of words in string are : " + str(res))

    print("The number of words in string are : ", len(test_string))

    Output:

    The original string is : Geeksforgeeks is best Computer Science Portal 
    The number of words in string are : 6 
    The number of words in string are :  45

    Method 2: Using regex module

    Here findall() function is used to count the number of words in the sentence available in a regex module.

    Python3

    import re

    test_string = "GeeksForGeeks is a learning platform"

    print("The original string is : " + test_string)

    res = len(re.findall(r'w+', test_string))

    print("The number of words in string are : " + str(res))

    print("The number of Characters in string are : ", len(test_string))

    Output:

    The original string is : GeeksForGeeks is a learning platform 
    The number of words in string are : 5 
    The number of Characters in string are :  36

    Time Complexity: O(n)
    Auxiliary Space: O(n)

    Method 3: Using sum()+ strip()+ split() function

    Here we first check all the words in the given sentence and add them using the sum() function.

    Python3

    import string

    test_string = "GeeksForGeeks is a learning platform"

    print("The original string is: " + test_string)

    res = sum([i.strip(string.punctuation).isalpha() for i in

               test_string.split()])

    print("The number of words in string are : " + str(res))

    print("The number of characters in string are : ", len(test_string))

    Output:

    The original string is: GeeksForGeeks is a learning platform 
    The number of words in string are : 5 
    The number of characters in string are :  36

    Method #4 : Using count() and len() methods

    Python3

    test_string = "Geeksforgeeks is best Computer Science Portal"

    print("The original string is : " + test_string)

    res = test_string.count(" ")+1

    print("The number of words in string are : " + str(res))

    print("The number of words in string are : ", len(test_string))

    Output

    The original string is : Geeksforgeeks is best Computer Science Portal
    The number of words in string are : 6
    The number of words in string are :  45

    The Time and Space Complexity for all the methods are the same:

    Time Complexity: O(n)

    Auxiliary Space: O(n)

    Last Updated :
    16 Feb, 2023

    Like Article

    Save Article

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

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

    # Reading a Text File in Python
    file_path = '/Users/datagy/Desktop/sample_text.txt'
    
    with open(file_path) as file:
        text = file.read()

    Примечание редакции: подробнее о работе с текстовыми файлами читайте в статье “Как обрабатывать текстовые файлы в Python 3”.

    Подсчет слов с помощью функции split()

    Одним из самых простых способов подсчета количества слов в строке Python является использование функции split(). Функция split() выглядит следующим образом:

    # Разбор функции split()
    str.split(
       sep=None     # Разделитель, по которому будет разбиваться строка
       maxsplit=-1  # Число разбиений
    )

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

    # Разделение строки при помощи .split()
    text = 'Welcome to PythonTurbo! Here you will learn Python.'
    print(text.split())
    
    # Вывод:
    # ['Welcome', 'to', 'PythonTurbo!', 'Here', 'you', 'will', 'learn', 'Python.']

    Как видите, метод возвращает список элементов. Поскольку для подсчета количества элементов в списке можно использовать функцию len(), мы можем организовать подсчет слов. Давайте посмотрим, как это выглядит:

    # Разделение строки при помощи .split()
    text = 'Welcome to PythonTurbo! Here you will learn Python.'
    print(len(text.split()))
    
    # Вывод: 8

    Подсчет количества слов с помощью regex

    Еще один простой способ подсчитать количество слов в строке Python – использовать библиотеку регулярных выражений re. Библиотека поставляется с функцией findall(), которая позволяет искать различные шаблоны строк.

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

    Для этого мы можем использовать шаблон w+, где w обозначает любой буквенно-цифровой символ, а + – одно или несколько вхождений. Пробельные символы в шаблон не попадают.

    Давайте посмотрим, как можно использовать этот метод для подсчета слов:

    # Подсчет слов при помощи регулярных выражений
    import re
    text = 'Welcome to PythonTurbo! Here you will learn Python.'
    print(len(re.findall(r'w+', text)))
    
    # Вывод: 8

    Вычисление частотности слов в Python

    Чтобы определить, как часто в тексте встречаются те или иные слова, можно использовать либо класс defaultdict, либо класс Counter.

    Использование defaultdict для вычисления частотности слов

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

    Давайте рассмотрим пример.

    # Определение частотности слов при помощи defaultdict
    from collections import defaultdict
    import re
    
    text = 'Welcome to PythonTurbo! Python is fun! Python, Python, Python!'
    
    counts = defaultdict(int)
    for word in re.findall('w+', text):
        counts[word] += 1
    
    print(counts)
    
    # Вывод:
    # defaultdict(<class 'int'>, {'Welcome': 1, 'to': 1, 'PythonTurbo': 1, 'Python': 4, 'is': 1, 'fun': 1})

    Давайте разберем, что мы здесь сделали:

    1. Мы импортировали функцию defaultdict и библиотеку re.
    2. Мы загрузили некоторый текст и создали defaultdict, используя функцию int.
    3. Затем мы перебрали список слов, добавляя единицу к счетчику при каждой встрече слова.

    Использование Counter для вычисления частотности слов

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

    # Определение частотности слов при помощи Counter
    from collections import Counter
    import re
    
    text = 'Welcome to PythonTurbo! Python is fun! Python, Python, Python!'
    counts =  Counter(re.findall('w+', text))
    print(counts)
    
    # Вывод:
    # Counter({'Python': 4, 'Welcome': 1, 'to': 1, 'PythonTurbo': 1, 'is': 1, 'fun': 1})

    Давайте разберем, что мы здесь сделали:

    1. Импортировали необходимые библиотеки и классы
    2. Передали полученный список из функции findall() в класс Counter
    3. Распечатали результат

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

    # Поиск наиболее частотного слова
    from collections import Counter
    import re
    
    text = 'Welcome to PythonTurbo! Python is fun! Python, Python, Python!'
    counts =  Counter(re.findall('w+', text))
    print(counts.most_common()[0])
    
    # Вывод:
    # ('Python', 4)

    Заключение

    Из этой статьи вы узнали, как узнать количество слов и их частотность с помощью Python. Мы разобрали несколько подходов, включая использование метода .split() и библиотеки re. Также мы рассмотрели применение defaultdict и Counter для определения частоты вхождения слов.

    Перевод статьи «Python: Count Words in a String or File».

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