snowballstemmer - это очень полезная библиотека, если вам нужно реализовать эффективный поиск по сайту или файлам.
Библиотека позволяет достать основу слова для заданного исходного слова.
Причем поддерживаются разные языки.
В том числе русский и английский.
Крч Must Have для поиска 🔥
Ставится командой
Библиотека позволяет достать основу слова для заданного исходного слова.
Причем поддерживаются разные языки.
В том числе русский и английский.
Крч Must Have для поиска 🔥
Ставится командой
pip install snowballstemmer
Документация и примеры кода здесь.👍2
Функция itertools.cycle
В пайтон есть классный модуль
Сегодня мы бы хотели показать вам функцию
К примеру, функция
Мы также можем воспользоваться
#генераторы #itertools
В пайтон есть классный модуль
itertools
для создания собственных итераторов. Функции данного модуля довольно эффективны в работе, поэтому их часто используют в реальных проектах. Сегодня мы бы хотели показать вам функцию
cycle()
из itertools
. Данная функция принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта. Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элементы.К примеру, функция
cycle()
из последовательности ['red', 'white', 'blue']
генерирует повторяющуюся бесконечную. Но важно при проходе при итерации по такому итератору предусмотреть выход из цикла (а не как у нас в первом случае с colors:). Так как это итератор, то мы можем использовать его для получения значений через функцию next(colors)
.Мы также можем воспользоваться
islice()
, который вернет итератор по подмножеству переданного объекта.#генераторы #itertools
👍4
Геттеры и сеттеры
В объектно-ориентированных языках распространено использование геттеров и сеттеров для безопасной работы с приватными полями. Например, в C# для этого есть удобная конструкция
В Python геттер реализуется через декоратор
Оба метода должны иметь одинаковое название, по которому можно будет обращаться как к обычному атрибуту.
#классы #property
В объектно-ориентированных языках распространено использование геттеров и сеттеров для безопасной работы с приватными полями. Например, в C# для этого есть удобная конструкция
{ get; set; }
.В Python геттер реализуется через декоратор
@property
, а сеттер в виде @свойство.setter
. В примере метод геттера называется age
, поэтому декоратор сеттера – @age.setter
.Оба метода должны иметь одинаковое название, по которому можно будет обращаться как к обычному атрибуту.
#классы #property
Добавляем классу большую функциональность
Декоратор
Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
#oop #classmethod
Декоратор
@classmethod
— это метод, который получает класс в качестве параметра, который принято обозначать как cls
. Он указывает на класс ToyClass, а не на объект этого класса. Методы класса привязаны к самому классу, а не его экземпляру. Они могут менять состояние класса, что отразится на всех объектах этого класса, но не могут менять конкретный объект.
Проще говоря,
@classmethod
— это обычный метод класса, имеющий доступ ко всем атрибутам класса, через который он был вызван.#oop #classmethod
🤔3
Блок for…else
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
Все мы знаем, что else неразрывно связан с блоком if, но вы, возможно, не в курсе, что else используется в цикле for.
В выражении for...else блок else выполняется только в том случае, если все итерации цикла будут успешно завершены. Если же выполнение цикла прерывается оператором break, то else не выполняется.
👍1
Наиболее частый элемент в списке
Это самый полезный лайфхак для поиска наиболее часто встречающегося элемента в списке. Представьте, что у вас есть список с кучей данных, и вам нужно найти в нем элемент с максимальной частотой употребления.
Большинство прибегает к использованию циклов для решения этой проблемы. Но вы можете упростить себе задачу, применив несколько встроенных функций.
Это самый полезный лайфхак для поиска наиболее часто встречающегося элемента в списке. Представьте, что у вас есть список с кучей данных, и вам нужно найти в нем элемент с максимальной частотой употребления.
Большинство прибегает к использованию циклов для решения этой проблемы. Но вы можете упростить себе задачу, применив несколько встроенных функций.
👍1