import string
s = 'oasndoasndoansdakls'
count = []
dictionary = {}
for x in set(s):
if x in string.ascii_lowercase:
dictionary[x] = s.count(x)
print (dictionary)
это создаст словарь символов и их количества и включит их, только если они находятся в списке string.ascii_lowercase
.
Вот как это использовать в вашем коде:
import string
def calc_freq(txt):
dic={}
for letter in txt:
if letter in string.ascii_lowercase:
if letter in dic:
dic[letter] += 1
else:
dic[letter] = 1
return dic
вам просто нужно было добавить if, прежде чем добавлять букву в словарь или увеличивать ее количество.
Я также удалил letter in range(txt)
и txt[letter]
, вы можете получить доступ к каждому характеру напрямую в python, потому что строка является iterable
и может рассматриваться как список.