Contar palavras em string em Python

Elsie Dela Pena 30 janeiro 2023
  1. Use os métodos split() e len() para contar palavras em string Python
  2. Use o módulo RegEx para contar palavras em strings Python
  3. Use os métodos sum(), strip() e split() para contar palavras em strings Python
  4. Use o método count() para contar palavras em Python String Python
Contar palavras em string em Python

Este tutorial irá apresentar como contar palavras em string Python.

Use os métodos split() e len() para contar palavras em string Python

split() é um método embutido em Python que separa as palavras dentro de uma string usando um separador específico e retorna um array de strings. Este método aceita no máximo dois parâmetros como argumento:

  • separator (opcional) - Ele atua como um delimitador (por exemplo, vírgulas, ponto e vírgula, aspas ou barras). Especifica o limite no qual separar na string. O separator padrão é qualquer espaço em branco (espaço, nova linha, tabulação, etc.) se o separator não for especificado.
  • maxsplit (opcional) - Define o número máximo de divisões. O valor padrão de maxsplit se não definido é -1, o que significa que ele não tem limites e irá dividir a string em vários pedaços.

Sintaxe de split():

str.split(separator, maxsplit)

len() é também um método embutido do Python, que retorna o número de strings em um array ou conta o comprimento dos itens em um objeto. Este método aceita apenas um parâmetro: string, bytes, lista, objeto, conjunto ou coleção. Ele gerará uma exceção TypeError se o argumento estiver ausente ou for inválido.

Sintaxe de len():

len(s)

Vamos ver como os métodos split() e len() contam as palavras em uma string.

Exemplo 1: Sem Parâmetros

# 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.")

Resultado:

There are 9 words.

Exemplo 2: Com o parâmetro 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.")

Resultado:

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

O método split() retornará uma nova lista de strings, e o len() conta a string dentro da lista.

Exemplo 3: Com os parâmetros separator e 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.")

Resultado:

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

maxsplit divide apenas as três primeiras vírgulas em bucket_list. Se você definir maxsplit, a lista terá um item maxsplit+1.

Resultado:

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

O método split() divide strings grandes em menores. Portanto, a contagem de palavras na matriz de strings será baseada não exatamente nas palavras, mas em como o separador de divisão é definido.

Use o módulo RegEx para contar palavras em strings Python

Expressão regular, regex ou regexp para breve, é uma ferramenta muito poderosa na pesquisa e manipulação de strings de texto; isso pode ser usado para pré-processamento de dados, fins de validação, localização de um padrão em uma string de texto e assim por diante. O Regex também pode ajudar a contar palavras em uma string de texto em cenários onde há sinais de pontuação ou caracteres especiais desnecessários. Regex é um pacote embutido em Python, então só precisamos importar o pacote re para começar a usá-lo.

# 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.")

Resultado:

There are 6 words.

Use os métodos sum(), strip() e split() para contar palavras em strings Python

Essa abordagem conta as palavras sem usar regex. O sum(), strip() e split() são todos métodos integrados em Python. Discutiremos brevemente cada método e suas funcionalidades.

O método sum() soma os itens da esquerda para a direita e retorna a soma. O método leva dois parâmetros:

  • iterable (obrigatório) - uma string, lista, tupla, etc., para somar. Devem ser números.
  • start (opcional) - Um número adicionado à soma ou ao valor de retorno do método.

Sintaxe de sum():

sum(iterable, start)

O próximo é o método strip(), que retorna uma cópia da string removida dos espaços em branco à esquerda e à direita se não houver argumento; caso contrário, remove a string definida no argumento.

  • chars (opcional) - especifica a string a ser removida das partes esquerda e direita do texto.

Sintaxe de string.strip():

string.strip(chars)

Finalmente, o método split(), já foi discutido antes desta abordagem.

Agora, vamos usar esses métodos juntos para contar palavras em uma string. Primeiro, precisamos importar a string, um módulo Python embutido, antes de usar suas funcionalidades.

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.")

Resultado:

There are 5 words.

Use o método count() para contar palavras em Python String Python

O método count() é um método integrado do Python. Leva três parâmetros e retorna o número de ocorrências com base na substring fornecida.

  • substring (obrigatório) - uma palavra-chave a ser pesquisada na string
  • start (opção) - índice de onde a pesquisa começa
  • end (opção) - índice de onde termina a pesquisa

Nota: O índice começa em 0 em Python.

Sintaxe de count():

string.count(substring, start, end)

Este método é diferente do método anterior, pois não retorna o total de palavras encontradas na string, mas o número de ocorrências encontradas de acordo com a substring. Vamos ver como esse método funciona com o exemplo abaixo:

# 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.")

Resultado:

There are 2 occurrences.

Nesse método, não importa se a substring é uma palavra inteira, frase, letra ou qualquer combinação de caracteres ou números.

Em resumo, você pode escolher qualquer uma dessas abordagens dependendo do seu caso de uso. Para palavras separadas por espaço, podemos usar a abordagem direta: as funções split() ou len(). Para filtrar strings de texto para contar palavras sem caracteres especiais, use o módulo regex. Crie um padrão que conte as palavras que não incluem determinados caracteres. Sem usar regex, use a alternativa que é a combinação dos métodos sum() + strip() + split(). Por último, o método count() também pode ser usado para contar a palavra específica encontrada na string.

Artigo relacionado - Python String