Conta le parole in stringa in Python

Elsie Dela Pena 11 luglio 2021
  1. Usa i metodi split() e len() per contare le parole in Python String
  2. Usa il modulo RegEx per contare le parole in Python String
  3. Usa i metodi sum(), strip() e split() per contare le parole in Python String
  4. Usa il metodo count() per contare le parole in Python String Python
Conta le parole in stringa in Python

Questo tutorial introdurrà come contare le parole nella stringa Python.

Usa i metodi split() e len() per contare le parole in Python String

split() è un metodo integrato in Python che separa le parole all’interno di una stringa utilizzando un separatore specifico e restituisce un array di stringhe. Questo metodo accetta al massimo due parametri come argomento:

  • separator (opzionale) - Funge da delimitatore (es. virgole, punto e virgola, virgolette o barre). Specifica il limite su cui separare nella stringa. Il separator predefinito è qualsiasi spazio bianco (spazio, nuova riga, tab, ecc.) se il separator non è specificato.
  • maxsplit (opzionale) - Definisce il numero massimo di split. Il valore predefinito di maxsplit se non definito è -1, il che significa che non ha limiti e dividerà la stringa in più blocchi.

Sintassi di split():

str.split(separator, maxsplit)

len() è anche un metodo integrato in Python, che restituisce il numero di stringhe in un array o conta la lunghezza degli elementi in un oggetto. Questo metodo accetta solo un parametro: una stringa, byte, elenco, oggetto, set o una raccolta. Solleverà un’eccezione TypeError se l’argomento è mancante o non valido.

Sintassi di len():

len(s)

Vediamo come i metodi split() e len() contano le parole in una stringa.

Esempio 1: nessun parametro

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

Produzione:

There are 9 words.

Esempio 2: Con il parametro 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.")

Produzione:

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

Il metodo split() restituirà un nuovo elenco di stringhe e len() conta la stringa all’interno della lista.

Esempio 3: Con i parametri 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.")

Produzione:

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

maxsplit divide solo le prime tre virgole nella bucket_list. Se imposti “maxsplit”, la lista avrà un elemento “maxsplit+1”.

Produzione:

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

Il metodo split() suddivide le stringhe grandi in stringhe più piccole. Pertanto, il conteggio delle parole nell’array di stringhe sarà basato non esattamente sulle parole ma su come è definito il separatore diviso.

Usa il modulo RegEx per contare le parole in Python String

L’espressione regolare, in breve regex o regexp, è uno strumento molto potente per la ricerca e la manipolazione di stringhe di testo; questo può essere utilizzato per la preelaborazione dei dati, per scopi di convalida, per trovare un modello in una stringa di testo e così via. Regex può anche aiutare a contare le parole in una stringa di testo in scenari in cui sono presenti segni di punteggiatura o caratteri speciali non necessari. Regex è un pacchetto integrato in Python, quindi abbiamo solo bisogno di importare il pacchetto re per iniziare a usarlo.

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

Produzione:

There are 6 words.

Usa i metodi sum(), strip() e split() per contare le parole in Python String

Questo approccio conta le parole senza usare l’espressione regolare. I metodi sum(), strip() e split() sono tutti metodi incorporati in Python. Discuteremo brevemente ogni metodo e le sue funzionalità.

Il metodo sum() somma gli elementi da sinistra a destra e restituisce la somma. Il metodo accetta due parametri:

  • iterable (richiesto) - una stringa, una lista, una tupla, ecc., da sommare. Questi dovrebbero essere numeri.
  • start (opzionale) - Un numero aggiunto alla somma o al valore di ritorno del metodo.

Sintassi di somma():

sum(iterable, start)

Il prossimo è il metodo strip(), che restituisce una copia della stringa priva sia degli spazi iniziali che di quelli finali se non ci sono argomenti; in caso contrario, rimuove la stringa definita nell’argomento.

  • chars (opzionale) - specifica la stringa da rimuovere dalle parti sinistra e destra del testo.

Sintassi di string.strip():

string.strip(chars)

Infine, il metodo split() era già stato discusso prima di questo approccio.

Ora, usiamo questi metodi insieme per contare le parole in una stringa. Innanzitutto, dobbiamo importare la string, un modulo integrato in Python, prima di utilizzare le sue funzionalità.

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

Produzione:

There are 5 words.

Usa il metodo count() per contare le parole in Python String Python

Il metodo count() è un metodo integrato in Python. Richiede tre parametri e restituisce il numero di occorrenze in base alla sottostringa data.

  • substring (richiesto) - una parola chiave da cercare nella stringa
  • start (opzione) - indice da dove inizia la ricerca
  • end (opzione) - indice di dove finisce la ricerca

Nota: l’indice inizia da 0 in Python.

Sintassi di count():

string.count(substring, start, end)

Questo metodo è diverso dal metodo precedente poiché non restituisce il totale delle parole trovate nella stringa ma il numero di occorrenze trovate data la sottostringa. Vediamo come funziona questo metodo dall’esempio seguente:

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

Produzione:

There are 2 occurrences.

In questo metodo, non importa se la sottostringa è un’intera parola, frase, lettera o qualsiasi combinazione di caratteri o numeri.

In sintesi, puoi scegliere uno di questi approcci a seconda del tuo caso d’uso. Per le parole separate da spazi, possiamo usare l’approccio diretto: le funzioni split() o len(). Per filtrare le stringhe di testo per contare le parole senza caratteri speciali, usa il modulo regex. Crea uno schema che conti le parole che non includono determinati caratteri. Senza usare regex, usa l’alternativa che è la combinazione dei metodi sum() + strip() + split(). Infine, il metodo count() può essere utilizzato anche per contare la specifica parola trovata nella stringa.

Articolo correlato - Python String