Just Python
9.87K subscribers
4.68K photos
16 videos
4.67K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Использование pickle для сериализации объектов

Преимущества: Упрощает процесс сериализации и десериализации объектов, что полезно для сохранения состояния программы.

#theory // Just Python & Max
Использование @staticmethod и @classmethod

Преимущества: Позволяет организовывать код и разделять методы, которые работают с экземплярами и классами.

#theory // Just Python & Max
Использование property() для создания свойств

Преимущества
:
 Позволяет создавать свойства с контролем доступа, улучшая инкапсуляцию.

#theory // Just Python & Max
Использование assert для отладки

Преимущества
:
 Упрощает отладку, позволяя добавлять проверки условий в коде.

#theory // Just Python
Использование numpy и pandas для работы с данными

Преимущества: Обеспечивает мощные инструменты для анализа данных и работы с массивами, упрощая манипуляции с большими объемами данных.

#theory // Just Python
Объединение списков без цикла

Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла? Вот как это можно сделать с помощью стандартной функции sum.

Есть пусть и менее краткий, но более эффективный способ – применение модуля itertools.

Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».

#theory // Just Python
dir

Когда-нибудь задумывались о том, как заглянуть внутрь объекта в Python и посмотреть на его атрибуты? Это может пригодиться при интерактивной сессии в Python, а также для динамического изучения объектов и модулей, с которыми вы работаете.

#theory // Just Python
inspect

Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!

Ниже используется метод inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.

Последняя команда выводит номер строки, на которой она сама находится

#theory // Just Python
zip

Встроенная функция zip() принимает несколько итерируемых объектов и возвращает последовательность  кортежей. Каждый кортеж группирует элементы объектов по их индексу.

Можно провести операцию, обратную zip(), с помощью zip(*).

#theory // Just Python
collections.defaultdict — Для тех, кто любит порядок

Сколько раз вы сталкивались с ошибками KeyError?

С defaultdict ваши ключи всегда будут иметь значение, даже если у вас их нет!

#theory // Just Python
Переворот строки

Этот трюк со срезами [::-1] я использую почти каждый день. Он работает значительно быстрее, чем итерационные методы типа ''.join(reversed(s)), что доказано бенчмарками. Кстати, тот же метод применим и к спискам.

#theory // Just Python
Проверка на палиндром

Палиндром - это строка, которая читается одинаково в обоих направлениях. Используя предыдущий сниппет, можно легко проверить это свойство.

Тут добавил предобработку строки - убираю пробелы и привожу все к нижнему регистру, что делает проверку более практичной.

#theory // Just Python
Разбиение строки на список

Превращение строки в список с помощью split - базовая операция для дальнейшей обработки данных.

Полезный трюк: если нужно разбить строку по нескольким разделителям, используйте re.split()

#theory // Just Python
Форматирование строк с f-строками

F-строки появились в Python 3.6 и стали моим любимым способом форматирования.

F-строки позволяют встраивать выражения Python прямо в строки, что делает код более читаемым

#theory // Just Python
Удаление лишних пробелов

Данные, полученные от пользователя или из файлов, часто содержат лишние пробелы. Их можно удалить с помощью методов strip или re.sub.

#theory // Just Python
Выравнивание текста

Для создания читаемых таблиц или форматированного вывода удобно использовать методы выравнивания ljust, rjust и center.

#theory // Just Python
Удаление дубликатов из списка

Превращение списка в множество (set) и обратно — самый быстрый способ избавиться от дубликатов.

Однако этот метод не сохраняет порядок элементов. Если порядок важен можно использовать выражение из второго примера.

Хитрость метода seen.add(x) заключается в том, что он возвращает None, поэтому условие срабатывает только когда элемент встречается впервые.

#theory // Just Python
Переворот списка

Аналогично строкам, списки можно перевернуть с помощью среза.

Есть также встроенный метод reverse(), но он изменяет список на месте.

#theory // Just Python
Сортировка списка словарей по ключу

При работе с данными часто требуется сортировка списка объектов по определенному полю с помощью лямбда функции в параметре key= метода sorted.

Для более сложной сортировки используйте itemgetter из модуля operator.

#theory // Just Python
Объединение словарей

До Python 3.9 объединить словари можно было несколькими способами, например с помощью методов copy и update.

В Python 3.9+ появился оператор | для объединения словарей.

#theory // Just Python
Инвертирование словаря

Иногда нужно поменять местами ключи и значения. Метод invert_dict работает только если значения уникальны и хешируемы.

Для повторяющихся значений подойдет метод setdefault(), который создает ключ со значением по умолчанию, если его еще нет в словаре, и возвращает значение этого ключа.

#theory // Just Python