Just Python
قناة بسيطة
🐍Простое изучение Python. Ссылка: @Portal_v_IT Сотрудничество: @oleginc
إظهار المزيد9 719
المشتركون
-324 ساعات
-137 أيام
-8830 أيام
أرشيف المشاركات
9 721
Создание простого генератора
Ключевое слово
yield приостанавливает выполнение функции и возвращает значение. При следующем вызове функция продолжит работу с того места, где остановилась. Это очень эффективно с точки зрения использования памяти.
#theory // Just Python9 721
Создание словаря из двух списков
Часто возникает задача создать словарь из двух отдельных списков, где один содержит ключи, а другой - значения.
Функция
zip() создает итератор, который объединяет элементы из нескольких итерируемых объектов. Затем конструктор dict() превращает пары в словарь. Если списки имеют разную длину, результирующий словарь будет ограничен длиной самого короткого списка.
#theory // Just Python9 721
Инвертирование словаря
Иногда нужно поменять местами ключи и значения. Метод invert_dict работает только если значения уникальны и хешируемы.
Для повторяющихся значений подойдет метод
setdefault(), который создает ключ со значением по умолчанию, если его еще нет в словаре, и возвращает значение этого ключа.
#theory // Just Python9 721
Объединение словарей
До Python 3.9 объединить словари можно было несколькими способами, например с помощью методов copy и update.
В Python 3.9+ появился оператор
| для объединения словарей.
#theory // Just Python9 721
Сортировка списка словарей по ключу
При работе с данными часто требуется сортировка списка объектов по определенному полю с помощью лямбда функции в параметре key= метода sorted.
Для более сложной сортировки используйте
itemgetter из модуля operator.
#theory // Just Python9 721
Переворот списка
Аналогично строкам, списки можно перевернуть с помощью среза.
Есть также встроенный метод reverse(), но он изменяет список на месте.
#theory // Just Python
9 721
Удаление дубликатов из списка
Превращение списка в множество (set) и обратно — самый быстрый способ избавиться от дубликатов.
Однако этот метод не сохраняет порядок элементов. Если порядок важен можно использовать выражение из второго примера.
Хитрость метода
seen.add(x) заключается в том, что он возвращает None, поэтому условие срабатывает только когда элемент встречается впервые.
#theory // Just Python9 721
Выравнивание текста
Для создания читаемых таблиц или форматированного вывода удобно использовать методы выравнивания ljust, rjust и center.
#theory // Just Python
9 721
Удаление лишних пробелов
Данные, полученные от пользователя или из файлов, часто содержат лишние пробелы. Их можно удалить с помощью методов strip или re.sub.
#theory // Just Python
9 721
Форматирование строк с f-строками
F-строки появились в Python 3.6 и стали моим любимым способом форматирования.
F-строки позволяют встраивать выражения Python прямо в строки, что делает код более читаемым
#theory // Just Python
9 721
Разбиение строки на список
Превращение строки в список с помощью split - базовая операция для дальнейшей обработки данных.
Полезный трюк: если нужно разбить строку по нескольким разделителям, используйте
re.split()
#theory // Just Python9 721
Repost from Находки Программиста
📣Универсальный держатель
Цена: ~1300₽
Рейтинг: 5😀
Отзывы: 119 💬
🖱 Заказать
Универсальный регулируемый держатель для планшета или телефона, поможет удобно разместить устройство на кровати или столе, освобождая руки для просмотра видео, чтения, работы и учёбы.
#держатель #девайс
Больше товаров — Находки Программиста
9 721
Проверка на палиндром
Палиндром - это строка, которая читается одинаково в обоих направлениях. Используя предыдущий сниппет, можно легко проверить это свойство.
Тут добавил предобработку строки - убираю пробелы и привожу все к нижнему регистру, что делает проверку более практичной.
#theory // Just Python
9 721
Переворот строки
Этот трюк со срезами
[::-1] я использую почти каждый день. Он работает значительно быстрее, чем итерационные методы типа ''.join(reversed(s)), что доказано бенчмарками. Кстати, тот же метод применим и к спискам.
#theory // Just Python9 721
collections.defaultdict — Для тех, кто любит порядок
Сколько раз вы сталкивались с ошибками
KeyError?
С defaultdict ваши ключи всегда будут иметь значение, даже если у вас их нет!
#theory // Just Python9 721
zip
Встроенная функция
zip() принимает несколько итерируемых объектов и возвращает последовательность кортежей. Каждый кортеж группирует элементы объектов по их индексу.
Можно провести операцию, обратную zip(), с помощью zip(*).9 721
inspect
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод
inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.
Последняя команда выводит номер строки, на которой она сама находится
#theory // Just Python9 721
inspect
Модуль inspect пригодится для понимания того, что происходит за кулисами в Python. Вы даже можете вызывать его методы на них самих!
Ниже используется метод
inspect.getsource() для вывода его собственного исходного кода. Также используется метод inspect.getmodule() для вывода модуля, в котором его определили.
Последняя команда выводит номер строки, на которой она сама находится
#theory // Just Python9 721
dir
Когда-нибудь задумывались о том, как заглянуть внутрь объекта в Python и посмотреть на его атрибуты? Это может пригодиться при интерактивной сессии в Python, а также для динамического изучения объектов и модулей, с которыми вы работаете.
#theory // Just Python
