Подсчитайте частоту букв в строке, а не пробелы, цифры или знаки препинания - PullRequest
0 голосов
/ 02 марта 2020
def count_letters(text):
  result = {}
  # Go through eactter in the text
  for letter in text:
    # Check if the letter needs to be counted or not
    if letter in text:
       result[letter.lower()]=result.get(letter,0)+1
    # Add or increment the value in the dictionary
  for k  in result:
    return result

print(count_letters("AaBbCc"))
# Should be {'a': 2, 'b': 2, 'c': 2}

print(count_letters("Math is fun! 2+2=4"))
# Should be {'m': 1, 'a': 1, 't': 1, 'h': 1, 'i': 1, 's': 1, 'f': 1, 'u': 1, 'n': 1}

print(count_letters("This is a sentence."))
# Should be {'t': 2, 'h': 1, 'i': 2, 's': 3, 'a': 1, 'e': 3, 'n': 2, 'c': 1}

1 Ответ

1 голос
/ 02 марта 2020

Вы можете использовать Counter с filter.

import string
from collections import Counter
Counter(filter(lambda x:x in string.ascii_letters,_str.lower()))

Counter({'m': 1,
         'a': 1,
         't': 1,
         'h': 1,
         'i': 1,
         's': 1,
         'f': 1,
         'u': 1,
         'n': 1})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...