Ebben a programban megtanulja megszámolni a sztringben lévő egyes magánhangzók számát a szótár és a szövegértés segítségével.
A példa megértéséhez ismernie kell a következő Python programozási témákat:
- Python for Loop
- Python karakterláncok
- Vonós módszerek
Forráskód: A szótár használata
# 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)
Kimenet
(„o”: 5, „i”: 3, „a”: 2, „e”: 5, „u”: 3)
Itt vettünk egy karakterláncot, amelyet az ip_str tárolt. A módszer casefold()
segítségével alkalmatlanná tesszük a ház nélküli összehasonlításokra. Alapvetően ez a módszer a karakterlánc egy kisbetűs változatát adja vissza.
A szótár módszerrel fromkeys()
új szótárt készítünk, amelynek kulcsa minden egyes magánhangzó és az összes értéke 0-nak felel meg. Ez a szám inicializálása.
Ezután a bemeneti karakterláncot iteráljuk egy for ciklus segítségével.
Minden iterációban ellenőrizzük, hogy a karakter szerepel-e a szótár kulcsaiban ( True
ha magánhangzó), és ha igaz, akkor 1-gyel növeljük az értéket.
Forráskód: Egy lista és egy szótár megértése
# 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)
Ennek a programnak a kimenete megegyezik a fentiekkel.
Itt beillesztettünk egy szövegértést egy szótári megértésbe, hogy a magánhangzókat egyetlen sorba számoljuk.
A szótár megértése az összes magánhangzóra lefut, és a szótár megértésének belsejében a szövegértés ellenőrzi, hogy a karakterlánc bármelyik karaktere megegyezik-e az adott magánhangzóval.
A végén egy 1 s- os lista jön létre az egyes magánhangzók száma számára. A sum()
módszert az egyes listák elemeinek összegének kiszámítására használják.
Ez a program azonban lassabb, mivel az egyes magánhangzók teljes bemeneti karakterláncát iteráljuk.