În acest program, veți învăța să numărați numărul fiecărei vocale dintr-un șir folosind dicționarul și înțelegerea listei.
Pentru a înțelege acest exemplu, ar trebui să aveți cunoștințele următoarelor subiecte de programare Python:
- Python pentru buclă
- Șiruri Python
- Metode String
Cod sursă: folosirea dicționarului
# 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)
Ieșire
(„o”: 5, „i”: 3, „a”: 2, „e”: 5, „u”: 3)
Aici, am luat un șir stocat în ip_str. Folosind metoda casefold()
, o facem potrivită pentru comparații fără casă. Practic, această metodă returnează o versiune cu litere mici a șirului.
Folosim metoda dicționarului fromkeys()
pentru a construi un dicționar nou cu fiecare vocală ca cheie și toate valorile egale cu 0. Aceasta este inițializarea numărării.
Apoi, vom itera peste șirul de intrare folosind o buclă for.
În fiecare iterație, verificăm dacă caracterul se află în cheile dicționarului ( True
dacă este o vocală) și incrementăm valoarea cu 1 dacă este adevărat.
Cod sursă: folosind o listă și o înțelegere a dicționarului
# 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)
Ieșirea acestui program este la fel ca mai sus.
Aici, am imbricat o listă de înțelegere în cadrul unei înțelegeri de dicționar pentru a număra vocalele într-o singură linie.
Înțelegerea dicționarului rulează pentru toate caracterele vocale și înțelegerea listei din cuprinsul dicționarului verifică dacă caracterele din șir se potrivesc cu vocala respectivă.
La sfârșit, se generează o listă cu 1 s pentru numărul fiecărui caracter vocal. sum()
Metoda este utilizată pentru a calcula suma elementelor pentru fiecare listă.
Cu toate acestea, acest program este mai lent, pe măsură ce repetăm întregul șir de intrare pentru fiecare vocală.