Обьясните пожалуйста часть кода
chars = "abcdefghijklmnopqrstuvwxyz"
check_string = "i am checking this string to see how many times each character appears"///
count = {}
for s in check_string:
if s in count:
count[s] += 1///эту часть
else:
count[s] = 1
for key in count:
if count[key] > 1:
print key, count[key]///и эту
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
код, подсчитывающий сколько раз в тексте встречается та или иная буква и выводящая статистику, если буква встречается более 1 раза:
chars = "abcdefghijklmnopqrstuvwxyz"
check_string = "i am checking this string to see how many times each character appears"
count = {} # словарь в котором каждому ключу (букве) будет поставлено в соответствие кол-во попаданий
for s in check_string: # перебираем побуквенно строку
if s in count: # если буква есть в словаре букв,
count[s] += 1 # увеличиваем на 1 счетчик этой буквы (в словаре букв)
else:
count[s] = 1 # если буквы нет в словаре - добавляем запись в словарь
for key in count: # перебираем словарь букв по ключам (буквам из словаря)
if count[key] > 1: # если счетчик больше 1
print key, count[key] # выводим букву и сколько раз она встречалась в строке
только надо было бы писать так
print(key, count[key])
а не так
print key, count[key]
Вообще код можно сделать чуть-чуть покороче:
check_string = "i am checking this string to see how many times each character appears"
count = {}
for s in check_string:
count[s] = count.get(s, 0) + 1
for key in count:
if count[key] > 1:
print(key, count[key])
или так:
for s in check_string:
count[s] = count.get(s, 0) + 1
[print(key, count[key]) for key in count if count[key] > 1]
а можно даже так сделать:
check_string = "i am checking this string to see how many times each character appears"
for s in set(check_string):
if check_string.count(s) > 1:
print(s, check_string.count(s))
и ее однострочный вариант:
[print(s, check_string.count(s)) for s in set(check_string) if check_string.count(s) > 1]