Programma Python per contare il numero di ciascuna vocale

In questo programma imparerai a contare il numero di ciascuna vocale in una stringa usando il dizionario e la comprensione delle liste.

Per comprendere questo esempio, dovresti avere la conoscenza dei seguenti argomenti di programmazione Python:

  • Python per Loop
  • Stringhe Python
  • Metodi di stringa

Codice sorgente: utilizzo del dizionario

 # Program to count the number of each vowels # string of vowels vowels = 'aeiou' ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # make a dictionary with each vowel a key and value 0 count = ().fromkeys(vowels,0) # count the vowels for char in ip_str: if char in count: count(char) += 1 print(count) 

Produzione

 ('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3) 

Qui, abbiamo preso una stringa memorizzata in ip_str. Usando il metodo casefold(), lo rendiamo adatto per confronti senza case. Fondamentalmente, questo metodo restituisce una versione minuscola della stringa.

Usiamo il metodo del dizionario fromkeys()per costruire un nuovo dizionario con ciascuna vocale come chiave e tutti i valori uguali a 0. Questa è l'inizializzazione del conteggio.

Successivamente, iteriamo sulla stringa di input utilizzando un ciclo for.

In ogni iterazione, controlliamo se il carattere è nelle chiavi del dizionario ( Truese è una vocale) e incrementiamo il valore di 1 se vero.

Codice sorgente: utilizzo di un elenco e di una comprensione del dizionario

 # Using dictionary and list comprehension ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # count the vowels count = (x:sum((1 for char in ip_str if char == x)) for x in 'aeiou') print(count) 

L' output di questo programma è lo stesso di sopra.

Qui, abbiamo annidato una comprensione della lista all'interno di una comprensione del dizionario per contare le vocali in una singola riga.

La comprensione del dizionario viene eseguita per tutti i caratteri vocalici e la comprensione dell'elenco all'interno della comprensione del dizionario controlla se qualche carattere nella stringa corrisponde a quella particolare vocale.

Alla fine, viene generata una lista con 1 s per il numero di ogni carattere vocale. Il sum()metodo viene utilizzato per calcolare la somma degli elementi per ciascuna lista.

Tuttavia, questo programma è più lento poiché iteriamo sull'intera stringa di input per ogni vocale.

Articoli interessanti...