Как элегантно "перевернуть" словарь
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
Итог:
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
#theory // Just Python
Иногда нужно поменять местами ключи и значения в словаре. Это можно сделать в одну строчку с помощью генератора словаря.
Итог:
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!
#theory // Just Python
Как задать тайм-аут для любой функции
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
Итог:
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
#theory // Just Python
Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.
Итог:
Такой приём позволяет безопасно завершать зависающие операции, не блокируя основной поток. Отлично подходит для сетевых вызовов, парсинга и других непредсказуемых задач.
#theory // Just Python
Yarl — Удобная работа с URL
Yarl — это библиотека Python, предназначенная для удобной работы с URL-адресами. Она предоставляет API для создания, изменения и анализа URL-адресов, сохраняя при этом их семантическую корректность.
Если вы работаете с URL-адресами и хотите упростить их обработку в Python, Yarl может быть отличным выбором.
Ссылочка на доку
#theory // Just Python
Yarl — это библиотека Python, предназначенная для удобной работы с URL-адресами. Она предоставляет API для создания, изменения и анализа URL-адресов, сохраняя при этом их семантическую корректность.
Если вы работаете с URL-адресами и хотите упростить их обработку в Python, Yarl может быть отличным выбором.
Ссылочка на доку
#theory // Just Python
Повтор последнего результата в Python REPL
Если работаешь в интерактивном режиме Python (REPL), тебе не обязательно каждый раз сохранять результат в переменную — предыдущий результат всегда доступен через _.
Итог:
Символ _ в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.
#theory // Just Python
Если работаешь в интерактивном режиме Python (REPL), тебе не обязательно каждый раз сохранять результат в переменную — предыдущий результат всегда доступен через _.
Итог:
Символ _ в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.
#theory // Just Python
Удаление дубликатов, сохраняя порядок
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
#theory // Just Python
Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().
Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.
#theory // Just Python
setdefault() для упрощения работы со словарями
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
#theory // Just Python
Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().
Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.
#theory // Just Python
Прерывание цикла for с else
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
#theory // Just Python
Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».
Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!
#theory // Just Python
Безопасное извлечение значений из словаря
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
#theory // Just Python
Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.
Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.
#theory // Just Python
Безопасное удаление ключа из словаря
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
#theory // Just Python
Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!
Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.
#theory // Just Python
Пример использования tqdm
Tqdm (от арабского слова "taqadum", что означает "прогресс") — это библиотека Python, которая позволяет легко и быстро создавать индикаторы выполнения задач. Она особенно полезна при работе с длительными операциями, так как позволяет отслеживать ход выполнения и остаточное время.
#theory // Just Python
Tqdm (от арабского слова "taqadum", что означает "прогресс") — это библиотека Python, которая позволяет легко и быстро создавать индикаторы выполнения задач. Она особенно полезна при работе с длительными операциями, так как позволяет отслеживать ход выполнения и остаточное время.
#theory // Just Python
Детектор утечек
С помощью данного скрипта ты узнаешь, сливали ли твои имейлы или пароли. Делается это с помощью HaveIBeenPwned API. Ты вводишь email или пароль для проверки, а в ответ выводится список сайтов, где была компрометация.
Ссылка на код
#theory // Just Python
С помощью данного скрипта ты узнаешь, сливали ли твои имейлы или пароли. Делается это с помощью HaveIBeenPwned API. Ты вводишь email или пароль для проверки, а в ответ выводится список сайтов, где была компрометация.
Ссылка на код
#theory // Just Python
Преобразование Word Doc или Docx в PDF в Python
Spire.Doc for Python предоставляет метод Document.LoadFromFile(), который позволяет пользователям загрузить файл Doc или Docx.
После этого можно выполнить преобразование в PDF с помощью метода Document.SaveToFile(string filename, ToPdfParameterList parameter).
#theory // Just Python
Spire.Doc for Python предоставляет метод Document.LoadFromFile(), который позволяет пользователям загрузить файл Doc или Docx.
После этого можно выполнить преобразование в PDF с помощью метода Document.SaveToFile(string filename, ToPdfParameterList parameter).
#theory // Just Python
Преобразование PowerPoint PPT или PPTX в PDF в Python
Преобразование из PowerPoint в PDF также довольно просто.
Просто используйте метод Presentation.LoadFromFile() для загрузки файла PPT или PPTX, а затем конвертируйте его в PDF с помощью метода Presentation.SaveToFile().
#theory // Just Python
Преобразование из PowerPoint в PDF также довольно просто.
Просто используйте метод Presentation.LoadFromFile() для загрузки файла PPT или PPTX, а затем конвертируйте его в PDF с помощью метода Presentation.SaveToFile().
#theory // Just Python
Синтаксис append() в Python
В этом примере:
1 Создаётся список
2 Метод
3 Вывод
#theory // Just Python
В этом примере:
1 Создаётся список
my_list
с элементами 1, 2, 3.2 Метод
append()
добавляет элемент 4 в конец списка.3 Вывод
my_list
показывает, что новый элемент успешно добавлен в конец списка.#theory // Just Python
Добавление новых элементов в список
Как мы знаем, метод
При этом длина списка увеличивается на 1, и новый элемент занимает позицию с индексом, который на единицу больше, чем индекс последнего элемента до добавления.
#theory // Just Python
Как мы знаем, метод
append()
добавляет новый элемент в конец списка.При этом длина списка увеличивается на 1, и новый элемент занимает позицию с индексом, который на единицу больше, чем индекс последнего элемента до добавления.
#theory // Just Python
Объединение словарей без update()
Нужно быстро объединить два словаря, не изменяя исходные? Используй оператор |, начиная с Python 3.9.
Итог:
Оператор | объединяет словари в один, не изменяя оригиналы. Это удобно, читаемо и декларативно.
#theory // Just Python
Нужно быстро объединить два словаря, не изменяя исходные? Используй оператор |, начиная с Python 3.9.
Итог:
Оператор | объединяет словари в один, не изменяя оригиналы. Это удобно, читаемо и декларативно.
#theory // Just Python
Упрощённая проверка аргументов через __post_init__ в dataclass
Иногда тебе нужно добавить валидацию данных при создании объекта dataclass. Вместо написания кастомного init, просто используй post_init!
Итог
post_init — отличный способ добавить проверку инициализации в dataclass, не нарушая автоматические преимущества этого декоратора.
#theory // Just Python
Иногда тебе нужно добавить валидацию данных при создании объекта dataclass. Вместо написания кастомного init, просто используй post_init!
Итог
post_init — отличный способ добавить проверку инициализации в dataclass, не нарушая автоматические преимущества этого декоратора.
#theory // Just Python
Заморозка dataclass с frozen=True
Хочешь сделать неизменяемый объект — как namedtuple, но с преимуществами dataclass? Просто добавь frozen=True.
Итог
frozen=True превращает dataclass в неизменяемый и хешируемый объект. Отлично для безопасного и предсказуемого кода.
#theory // Just Python
Хочешь сделать неизменяемый объект — как namedtuple, но с преимуществами dataclass? Просто добавь frozen=True.
Итог
frozen=True превращает dataclass в неизменяемый и хешируемый объект. Отлично для безопасного и предсказуемого кода.
#theory // Just Python
Библиотека python-decouple
Библиотека python-decouple для Python помогает отделить конфигурационные параметры от вашего исходного кода. Это означает, что вы можете хранить секретные данные, такие как ключи API, пароли и URL-адреса базы данных, вне вашего кода, улучшая безопасность.
#theory // Just Python
Библиотека python-decouple для Python помогает отделить конфигурационные параметры от вашего исходного кода. Это означает, что вы можете хранить секретные данные, такие как ключи API, пароли и URL-адреса базы данных, вне вашего кода, улучшая безопасность.
#theory // Just Python
Быстрое создание вложенных словарей с defaultdict
Если ты работаешь с вложенными структурами типа dict of dict, можно избавиться от лишних проверок на наличие ключей, используя collections.defaultdict.
Это особенно удобно при подсчёте данных или построении динамических структур.
Итог
С помощью defaultdict можно упростить работу с вложенными словарями и избежать лишней проверки наличия ключей. Идеально подходит для счётчиков и агрегаций.
#theory // Just Python
Если ты работаешь с вложенными структурами типа dict of dict, можно избавиться от лишних проверок на наличие ключей, используя collections.defaultdict.
Это особенно удобно при подсчёте данных или построении динамических структур.
Итог
С помощью defaultdict можно упростить работу с вложенными словарями и избежать лишней проверки наличия ключей. Идеально подходит для счётчиков и агрегаций.
#theory // Just Python