W tym programie nauczysz się liczyć liczbę każdej samogłoski w ciągu za pomocą słownika i list.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:
- Python for Loop
- Ciągi Pythona
- Metody ciągów
Kod źródłowy: przy użyciu słownika
# 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)
Wynik
('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3)
Tutaj pobraliśmy ciąg przechowywany w ip_str. Korzystając z tej metody casefold()
, dostosowujemy ją do porównań bezkrytycznych. Zasadniczo ta metoda zwraca wersję ciągu zapisaną małymi literami.
Używamy metody słownikowej fromkeys()
do konstruowania nowego słownika z każdą samogłoską jako kluczem i wszystkimi wartościami równymi 0. To jest inicjalizacja licznika.
Następnie iterujemy po ciągu wejściowym za pomocą pętli for.
W każdej iteracji sprawdzamy, czy znak znajduje się w kluczach słownika ( True
jeśli jest to samogłoska) i zwiększamy wartość o 1, jeśli jest prawdziwa.
Kod źródłowy: korzystanie z listy i ze słownika
# 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)
Wyjście tego programu jest taka sama jak powyżej.
Tutaj umieściliśmy rozumienie z listy wewnątrz wyrażenia słownikowego, aby policzyć samogłoski w jednej linii.
Rozumienie słownikowe działa dla wszystkich znaków samogłoskowych, a lista rozumiana wewnątrz słownika sprawdza, czy jakiekolwiek znaki w ciągu pasują do tej konkretnej samogłoski.
Na końcu generowana jest lista z 1 s dla numeru każdej samogłoski. sum()
Metoda służy do obliczania sumy elementów dla każdej listy.
Jednak ten program jest wolniejszy, ponieważ iterujemy po całym ciągu wejściowym dla każdej samogłoski.