Как определить количество слов в строке python?

Аватар пользователя Ivan Mamtsev
Ivan Mamtsev
21 августа 2024

Возможно самым простым и в то же время надежным будет способ с использованием регулярных выражений.

text = "Это простой пример строки, с запятой!"
len(re.findall(r'\w+', text))

Здесь используя регулярку \w+ мы отсеим слова от знаков препинания и пробелов. Если же у нас более проблемный текст, то можно подправить регулярку на следующую:

text = "Это более сложный пример: строка с пунктуацией и числами (123)!"


text = re.sub(r'[^\w\s]', '', text.lower())
len([word for word in text.split() if word])

Здесь нам также понадобится метод split() для разбиения строки по пробелам.

1 0
Аватар пользователя Сергей Мишин
Сергей Мишин
28 декабря 2022

можно использовать метод 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 слова.

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

0 0
Аватар пользователя Сергей К.
Сергей К.
03 ноября 2021

Алгоритмов может несколько. Один из них такой:

  1. Разбить строку на массив, где каждое слово – отдельный элемент.
  2. Вычислить длину этого массива.
>>> colors = "red green blue"
>>> len(colors.split())
3
>>> 
0 1
Познакомьтесь с основами Python бесплатно