Misha-Ivlev / dict_homework_for_students

0 stars 0 forks source link

Замечания #1

Open mistandok opened 1 year ago

mistandok commented 1 year ago

Привет, отлично! Но пару моментов давай поправим?

1) вот здесь круто, что посмотрел конструкцию match case. Но можем это все дело упростить. Смотрите, на лекции я показывал, что функции у нас - это объекты. функции можно засовывать в словари как значения. Что если сразу сделать какой-то словарик-шаблон, в котором ключи будут нашими требуемыми ключами, а значения - функциями, к типам которых нам надо значения преобразовать? int, str и т.п. - это callable объекты, то есть они тоже значениями могут быть Чтобы шаблон был неизменяемым, можно использовать frozendict (но он устарел уже), на его смену пришел MappingProxyType (Этот тип подсмотрел у вашего коллеги Шульга Михаила). Если будут вопросы - то можно в вопрос-ответ

2) вот здесь можно попроще регулярку: r'\b\w{3,}\b', попробуйте

3) вот здесь можно было сразу весь текст в нижний регистр перевести, тогда не надо было бы здесь итерироваться

4) вот здесь сортировать можно сразу по нескольким параметрам подряд. Для этого нужно внутри key использовать кортеж: sorted(words_counter.items(), key=lambda word: (-word[1], word[0])) Это первый вариант, а второй вариант: return dict(Counter(sorted(words)).most_common(10)) сначала слова отсортировать а потом послать их в Counter. Словари порядок запоминают, в котором к ним данные посылают, соответсвенно most_common уже будет значения отбирать по отсортированным словам

mistandok commented 1 year ago

Привет! почти

1) вот здесь давайте без lambda функций и без дополнительного словаря внутри, зачем он там нужен? в чате 3 задания было обсуждение на эту тему

2) вот здесь naming - это же у вас уже не текст, это набор слов. Не вводите читающего код и себя из будущего в заблуждение :)