Python-program til at tælle antallet af hver vokal

I dette program lærer du at tælle antallet af hver vokal i en streng ved hjælp af ordbog og listeforståelse.

For at forstå dette eksempel skal du have kendskab til følgende Python-programmeringsemner:

  • Python for Loop
  • Python-strenge
  • Strengmetoder

Kildekode: Brug af ordbog

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

Produktion

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

Her har vi taget en streng gemt i ip_str. Ved hjælp af metoden casefold()gør vi den velegnet til tilfælde uden sammenligning. Dybest set returnerer denne metode en version med strengere streng.

Vi bruger ordbogsmetoden fromkeys()til at konstruere en ny ordbog med hver vokal som nøgle og alle værdier er lig med 0. Dette er initialiseringen af ​​optællingen.

Dernæst gentager vi over inputstrengen ved hjælp af en for-loop.

I hver iteration kontrollerer vi, om tegnet er i ordbogstasterne ( Truehvis det er en vokal) og øger værdien med 1, hvis den er sand.

Kildekode: Brug af en liste og en forståelse af ordbogen

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

Den udgang af dette program er det samme som ovenfor.

Her har vi indlejret en listeforståelse inde i en ordbogsforståelse for at tælle vokalerne i en enkelt linje.

Ordbogens forståelse kører for alle vokaltegn, og listeforståelsen inde i ordbogens forståelse kontrollerer, om nogen tegn i strengen matcher den pågældende vokal.

I slutningen genereres en liste med 1 s for antallet af hvert vokaltegn. Den sum()metode benyttes til at beregne summen af de elementer for hver liste.

Dette program er dog langsommere, når vi gentager hele inputstrengen for hver vokal.

Interessante artikler...