Program Python na spočítanie počtu každej samohlásky

V tomto programe sa naučíte počítať počet jednotlivých samohlások v reťazci pomocou slovníka a porozumenia zoznamu.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Python:

  • Python pre Loop
  • Pythonové struny
  • Metódy reťazcov

Zdrojový kód: Používanie slovníka

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

Výkon

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

Tu sme vzali reťazec uložený v ip_str. Pomocou metódy casefold()ho urobíme vhodným na beznádejné porovnanie. Táto metóda v zásade vracia verziu reťazca s malými písmenami.

Metódu slovníka používame fromkeys()na skonštruovanie nového slovníka s každou samohláskou ako jej kľúčom a so všetkými hodnotami rovnými 0. Toto je inicializácia počtu.

Ďalej iterujeme vstupný reťazec pomocou slučky for.

V každej iterácii kontrolujeme, či sa znak nachádza v klávesoch slovníka ( Trueak ide o samohlásku), a zvyšujeme hodnotu o 1, ak je to pravda.

Zdrojový kód: Použitie zoznamu a slovníka s porozumením

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

Výstup z tohto programu je rovnaký ako je uvedené vyššie.

Tu sme vložili porozumenie zoznamu do slovníka, aby sme počítali samohlásky do jedného riadku.

Slovníkové porozumenie funguje pre všetky znaky samohlásky a porozumenie zoznamu vo vnútri slovníka s porozumením kontroluje, či sa niektoré znaky v reťazci zhodujú s konkrétnou samohláskou.

Na konci sa pre každý znak samohlásky vygeneruje zoznam s 1 s. sum()Metóda sa používa na výpočet súčtu prvkov pre každý zoznam.

Tento program je však pomalší, pretože iterujeme celým vstupným reťazcom pre každú samohlásku.

Zaujímavé články...