Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
__repr__

Метод __repr__() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки.
​​Форматирование констант списка.

Если вы всё еще записываете константы списка, словаря или множества в одну строку, то советую вам перестать)
Если вы пользуетесь git и будете вносить изменения в этот список, то в результате команды git diff будет сложно понять какой элемент был удален, добавлен или изменен.
​​Размещение запятой.

В продолжение вчерашней темы, хотел бы рассказать о запятой в списках. Как вы могли заметить в посте выше, в names2 последний элемент заканчивается запятой. Это очень важно! Это будет еще одной полезной привычкой добавление запятой после каждого элемента(даже последнего), тогда в следующий раз, когда вы захотите добавить новый элемент, вы не допустите дурацкой ошибки!
​​Легкая проверка на анаграммность.

Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс Counter
​​Транспонирование двумерного массива данных

Чтобы поменять местами строки и столбцы матрицы, созданной с помощью встроенных типов данных, воспользуйтесь функцией zip

Также, прошу вас реакциями проголосовать какой стиль скриншотов с кодом вам больше нравится.
​​Присвоение первого непустого значения из ряда

Следующая инструкция присвоит первый непустой (имеющий истинное значение) объект из множества объектов A, B и С. Или None, если все предыдущие объекты окажутся пустыми
​​Итерирование с использованием функции enumerate(ч1)

Функция range позволяет получить только индексы элементов списка. Функция enumerate генерирует кортежи, состоящие из двух элементов – индекса элемента и самого элемента. Эти кортежи можно распаковать еще в заголовке for
Получается короткий и понятный код!
В примере разберем как извлечь из списка элементы и их индекс
​​Итерирование с использованием функции enumerate(ч2)

Еще одной полезной и крутой фишкой этой функции будет легкое создания счетчика. Более того, мы можем установить первоначальное значение счетчика.
​​Вывод значения по умолчанию для отсутствующего ключа словаря

Если вы обратитесь к несуществующему ключу словаря, то это вызовет исключение. Избежать этого можно, вызывая метод get. В примере ниже метод выдает None (по умолчанию) или заданное значение аргумента.
​​Удаление дубликатов в списке

Первое что приходит на ум — преобразовать список во множество и обратно. Это хороший и рабочий способ. Но если вам нужно сохранить последовательность, то этот способ не подойдёт. С этой задачей легко справится OrderedDict из модуля collections
​​Назначение переменных и функций по условию

Иногда элементы с условиями очень просты — в этих случаях лучше использовать тернарный оператор if/else:
X = 2 if Y else 3
В этом примере X присвоится 2, если Y будет истинно, иначе присвоится 3.
Ещё интереснее применение тернарного оператора в отношении функций
​​Объединение списков без циклов.

Это можно сделать двумя способами. Первый через стандартную функцию sum. Второй способ через применение модуля itertools. Он хоть и более громоздкий, но эффективней.
А какой способ выберете вы?
​​Распаковка последовательности при неизвестном числе элементов.

Для этого в Python есть оператор звездочки – расширенная операция распаковывания последовательности. Переменной со звездочкой присваивается часть списка, содержащая все неприсвоенные элементы, соответствующие этой позиции
​​Сортировка словаря по значениям

Распространена практика использования словарей в качестве таблиц для хранения данных. Сортировка данных словаря по значениям ключей, а не самим ключам, нередко ставит в тупик. Задача решается довольно просто при помощи соответствующего аргумента функции сортировки
​​Сегодня у нас очень простой трюк. И вы должны попробовать его сами.
Что нужно делать:
- импортировать модуль antigravity
- ввести любую команду
...
Результат получится интересным
​​Генераторы словарей.

Многие в курсе про генераторы списков(а если нет, то вот наш пост). Но слышали ли вы о генераторах словарей? Такие генераторы удобны для начальной инициализации значений последовательностей.
​​Преобразование двух списков в словарь

У нас имеется два списка. Один из них содержит названия городов, а второй — их столиц. Как преобразовать эти два списка в словарь? Для этого понадобится функция zip():
​​Поиск подстроки в строке

Pегулярное выражение — это строка, задающая шаблон поиска подстрок в тексте. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re, который содержит функцию search. Она позволит вам найти подстроку в строке
​​Конкатенация списка строк

Если нужно конкатенировать список строк, сделать это можно в цикле for, по одной добавляя строки к итоговому результату. Однако такой подход будет весьма неэффективным, особенно в том случае, если список оказывается достаточно длинным. В Python строки являются иммутабельными сущностями. В результате каждая операция по конкатенации строк означает необходимость копирования пары строк в новую строку.

Более эффективный подход к решению этой задачи заключается в использовании функции join():
​​Изменение типа данных в списке

Представим, что вы прочитали из файла список чисел, изначально все эти числа имеют строковый тип данных, чтобы работать с ними - нужно превратить их в целое число, одно из решений данной задачи - использование функции map():