Использование pickle для сериализации объектов
Преимущества: Упрощает процесс сериализации и десериализации объектов, что полезно для сохранения состояния программы.
#theory // Just Python & Max
Преимущества: Упрощает процесс сериализации и десериализации объектов, что полезно для сохранения состояния программы.
#theory // Just Python & Max
Использование @staticmethod и @classmethod
Преимущества: Позволяет организовывать код и разделять методы, которые работают с экземплярами и классами.
#theory // Just Python & Max
Преимущества: Позволяет организовывать код и разделять методы, которые работают с экземплярами и классами.
#theory // Just Python & Max
Использование property() для создания свойств
Преимущества: Позволяет создавать свойства с контролем доступа, улучшая инкапсуляцию.
#theory // Just Python & Max
Преимущества: Позволяет создавать свойства с контролем доступа, улучшая инкапсуляцию.
#theory // Just Python & Max
Использование assert для отладки
Преимущества: Упрощает отладку, позволяя добавлять проверки условий в коде.
#theory // Just Python
Преимущества: Упрощает отладку, позволяя добавлять проверки условий в коде.
#theory // Just Python
Использование numpy и pandas для работы с данными
Преимущества: Обеспечивает мощные инструменты для анализа данных и работы с массивами, упрощая манипуляции с большими объемами данных.
#theory // Just Python
Преимущества: Обеспечивает мощные инструменты для анализа данных и работы с массивами, упрощая манипуляции с большими объемами данных.
#theory // Just Python
Объединение списков без цикла
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла? Вот как это можно сделать с помощью стандартной функции sum.
Есть пусть и менее краткий, но более эффективный способ – применение модуля itertools.
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».
#theory // Just Python
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла? Вот как это можно сделать с помощью стандартной функции sum.
Есть пусть и менее краткий, но более эффективный способ – применение модуля itertools.
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».
#theory // Just Python
dir
Когда-нибудь задумывались о том, как заглянуть внутрь объекта в Python и посмотреть на его атрибуты? Это может пригодиться при интерактивной сессии в Python, а также для динамического изучения объектов и модулей, с которыми вы работаете.
#theory // Just Python
Когда-нибудь задумывались о том, как заглянуть внутрь объекта в Python и посмотреть на его атрибуты? Это может пригодиться при интерактивной сессии в Python, а также для динамического изучения объектов и модулей, с которыми вы работаете.
#theory // Just Python
inspect
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод
Последняя команда выводит номер строки, на которой она сама находится
#theory // Just Python
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод
inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.Последняя команда выводит номер строки, на которой она сама находится
#theory // Just Python
zip
Встроенная функция
Можно провести операцию, обратную
#theory // Just Python
Встроенная функция
zip() принимает несколько итерируемых объектов и возвращает последовательность кортежей. Каждый кортеж группирует элементы объектов по их индексу.Можно провести операцию, обратную
zip(), с помощью zip(*).#theory // Just Python
collections.defaultdict — Для тех, кто любит порядок
Сколько раз вы сталкивались с ошибками
С
#theory // Just Python
Сколько раз вы сталкивались с ошибками
KeyError?С
defaultdict ваши ключи всегда будут иметь значение, даже если у вас их нет!#theory // Just Python
Переворот строки
Этот трюк со срезами
#theory // Just Python
Этот трюк со срезами
[::-1] я использую почти каждый день. Он работает значительно быстрее, чем итерационные методы типа ''.join(reversed(s)), что доказано бенчмарками. Кстати, тот же метод применим и к спискам.#theory // Just Python
Проверка на палиндром
Палиндром - это строка, которая читается одинаково в обоих направлениях. Используя предыдущий сниппет, можно легко проверить это свойство.
Тут добавил предобработку строки - убираю пробелы и привожу все к нижнему регистру, что делает проверку более практичной.
#theory // Just Python
Палиндром - это строка, которая читается одинаково в обоих направлениях. Используя предыдущий сниппет, можно легко проверить это свойство.
Тут добавил предобработку строки - убираю пробелы и привожу все к нижнему регистру, что делает проверку более практичной.
#theory // Just Python
Разбиение строки на список
Превращение строки в список с помощью split - базовая операция для дальнейшей обработки данных.
Полезный трюк: если нужно разбить строку по нескольким разделителям, используйте
#theory // Just Python
Превращение строки в список с помощью split - базовая операция для дальнейшей обработки данных.
Полезный трюк: если нужно разбить строку по нескольким разделителям, используйте
re.split()#theory // Just Python
Форматирование строк с f-строками
F-строки появились в Python 3.6 и стали моим любимым способом форматирования.
F-строки позволяют встраивать выражения Python прямо в строки, что делает код более читаемым
#theory // Just Python
F-строки появились в Python 3.6 и стали моим любимым способом форматирования.
F-строки позволяют встраивать выражения Python прямо в строки, что делает код более читаемым
#theory // Just Python
Удаление лишних пробелов
Данные, полученные от пользователя или из файлов, часто содержат лишние пробелы. Их можно удалить с помощью методов strip или re.sub.
#theory // Just Python
Данные, полученные от пользователя или из файлов, часто содержат лишние пробелы. Их можно удалить с помощью методов strip или re.sub.
#theory // Just Python
Выравнивание текста
Для создания читаемых таблиц или форматированного вывода удобно использовать методы выравнивания ljust, rjust и center.
#theory // Just Python
Для создания читаемых таблиц или форматированного вывода удобно использовать методы выравнивания ljust, rjust и center.
#theory // Just Python
Удаление дубликатов из списка
Превращение списка в множество (set) и обратно — самый быстрый способ избавиться от дубликатов.
Однако этот метод не сохраняет порядок элементов. Если порядок важен можно использовать выражение из второго примера.
Хитрость метода
#theory // Just Python
Превращение списка в множество (set) и обратно — самый быстрый способ избавиться от дубликатов.
Однако этот метод не сохраняет порядок элементов. Если порядок важен можно использовать выражение из второго примера.
Хитрость метода
seen.add(x) заключается в том, что он возвращает None, поэтому условие срабатывает только когда элемент встречается впервые.#theory // Just Python
Переворот списка
Аналогично строкам, списки можно перевернуть с помощью среза.
Есть также встроенный метод reverse(), но он изменяет список на месте.
#theory // Just Python
Аналогично строкам, списки можно перевернуть с помощью среза.
Есть также встроенный метод reverse(), но он изменяет список на месте.
#theory // Just Python
Сортировка списка словарей по ключу
При работе с данными часто требуется сортировка списка объектов по определенному полю с помощью лямбда функции в параметре key= метода sorted.
Для более сложной сортировки используйте
#theory // Just Python
При работе с данными часто требуется сортировка списка объектов по определенному полю с помощью лямбда функции в параметре key= метода sorted.
Для более сложной сортировки используйте
itemgetter из модуля operator.#theory // Just Python
Объединение словарей
До Python 3.9 объединить словари можно было несколькими способами, например с помощью методов copy и update.
В Python 3.9+ появился оператор
#theory // Just Python
До Python 3.9 объединить словари можно было несколькими способами, например с помощью методов copy и update.
В Python 3.9+ появился оператор
| для объединения словарей.#theory // Just Python
Инвертирование словаря
Иногда нужно поменять местами ключи и значения. Метод invert_dict работает только если значения уникальны и хешируемы.
Для повторяющихся значений подойдет метод
#theory // Just Python
Иногда нужно поменять местами ключи и значения. Метод invert_dict работает только если значения уникальны и хешируемы.
Для повторяющихся значений подойдет метод
setdefault(), который создает ключ со значением по умолчанию, если его еще нет в словаре, и возвращает значение этого ключа.#theory // Just Python