Conta le occorrenze di un carattere in una stringa in Python

Hiten Kanwar 30 gennaio 2023
  1. Usa la funzione count() per contare il numero di caratteri presenti in una stringa in Python
  2. Usa il collections.Counter per contare le occorrenze di un carattere in una stringa in Python
  3. Usa le espressioni regolari per contare le occorrenze di un carattere in una stringa in Python
  4. Usa il defaultdict per contare le occorrenze di un carattere in una stringa in Python
  5. Usa pandas.value_counts() per contare le occorrenze di un carattere in una stringa in Python
  6. Usa un’espressione lambda per contare le occorrenze di un carattere in una stringa in Python
  7. Usa il cicli for per contare le occorrenze di un carattere in una stringa in Python
Conta le occorrenze di un carattere in una stringa in Python

In programmazione, una stringa è una sequenza di caratteri.

Questo tutorial introdurrà come contare il numero di occorrenze di un carattere in una stringa in Python.

Usa la funzione count() per contare il numero di caratteri presenti in una stringa in Python

Possiamo contare l’occorrenza di un valore nelle stringhe usando la funzione count(). Restituirà quante volte il valore appare nella stringa data.

Per esempio,

print("Mary had a little lamb".count("a"))

Produzione:

4

Ricorda, le maiuscole e le minuscole vengono trattate come caratteri diversi. A e a verranno trattati come caratteri diversi e avranno conteggi diversi.

Usa il collections.Counter per contare le occorrenze di un carattere in una stringa in Python

Un Counter è una sottoclasse del dizionario presente nel modulo collections. Memorizza gli elementi come chiavi del dizionario e le loro occorrenze vengono archiviate come valori del dizionario. Invece di generare un errore, restituisce un conteggio zero per gli elementi mancanti.

Per esempio,

from collections import Counter

my_str = "Mary had a little lamb"
counter = Counter(my_str)
print(counter["a"])

Produzione:

4

È una scelta migliore quando si contano molte lettere poiché il contatore calcola tutti i conteggi una volta. È molto più veloce della funzione count().

Usa le espressioni regolari per contare le occorrenze di un carattere in una stringa in Python

Un’espressione regolare è una sintassi specializzata contenuta in un modello che aiuta a trovare le stringhe o un insieme di stringhe facendo corrispondere quel modello. Importiamo il modulo re per lavorare con le espressioni regolari.

Possiamo usare la funzione findall() per il nostro problema.

Per esempio,

import re

my_string = "Mary had a little lamb"
print(len(re.findall("a", my_string)))

Produzione:

4

Usa il defaultdict per contare le occorrenze di un carattere in una stringa in Python

Defaultdict è presente nel modulo collections ed è derivato dalla classe dizionario. La sua funzionalità è relativamente la stessa di quella dei dizionari, tranne per il fatto che non genera mai un KeyError, poiché fornisce un valore predefinito per la chiave che non esiste mai.

Possiamo usarlo per ottenere le occorrenze di un carattere in una stringa come mostrato di seguito.

from collections import defaultdict

text = "Mary had a little lamb"
chars = defaultdict(int)

for char in text:
    chars[char] += 1

print(chars["a"])
print(chars["t"])
print(chars["w"])  # element not present in the string, hence print 0

Produzione:

4
2
0

Usa pandas.value_counts() per contare le occorrenze di un carattere in una stringa in Python

Possiamo usare il metodo pandas.value_counts() per ottenere le occorrenze di tutti i caratteri presenti nella stringa fornita. Dobbiamo passare la stringa come oggetto Series.

Per esempio,

import pandas as pd

phrase = "Mary had a little lamb"
print(pd.Series(list(phrase)).value_counts())

Produzione:

     4
a    4
l    3
t    2
e    1
b    1
h    1
r    1
y    1
M    1
m    1
i    1
d    1
dtype: int64

Restituisce le occorrenze di tutti i caratteri in un oggetto Series.

Usa un’espressione lambda per contare le occorrenze di un carattere in una stringa in Python

Le funzioni lambda non solo possono contare le occorrenze dalla stringa data, ma possono anche funzionare quando abbiamo la stringa, come un elenco di sottostringhe.

Vedere il seguente codice.

sentence = ["M", "ar", "y", "had", "a", "little", "l", "am", "b"]
print(sum(map(lambda x: 1 if "a" in x else 0, sentence)))

Produzione:

4

Usa il cicli for per contare le occorrenze di un carattere in una stringa in Python

Si itera sulla stringa e se l’elemento è uguale al carattere desiderato, la variabile count viene incrementata fino a raggiungere la fine della stringa.

Per esempio,

sentence = "Mary had a little lamb"
count = 0
for i in sentence:
    if i == "a":
        count = count + 1
print(count)

Produzione:

4

Di seguito possiamo vedere un altro modo di utilizzare questo metodo con la funzione sum().

my_string = "Mary had a little lamb"
print(sum(char == "a" for char in my_string))

Produzione:

4

Articolo correlato - Python String